API Endpoints
Announcement
We improved the API just for you! The main changes are:
Add language support
Use academicTerm instead of year
Key concepts with the same json structure (degree, course, space, period)
Spaces blueprints
Assigned room in evaluations
Add room exam and normal capacity
Add shift occupation in course schedule
You can see what changed in detail here .
This page essentially lists all the existing endpoints, as well as examples
when making invocations. While it is not the purpose of this page to describe
the business entities exposed by this API, we will try to explain the meaning
of each values whenever it is not self-evident. The current API exposes four
central concepts of the FenixEdu platform: people, spaces, degrees and courses.
Here, a space represents a resource such as a campus, a building, a building
level (floor) or a room. A degree represents a set of knowledge offered by a
school or university, such that when a student completes the associated studies
he/she is eligible for a diploma and is often conferred a corresponding title.
A course is a concrete unit of teaching that typically lasts one academic term.
This documentation is applicable to all FenixEdu installations as of version
1.2.0. Check your local installation to find out if the API is available. Be
aware that some institutions may choose to restrict access to the API.
Language Support
The API supports localized invocations.
In each endpoint if a lang
parameter is present and its’ value is an available language, the returned information is localized in the specified language. Otherwise the default language is used.
The list of available languages is returned by /about .
Example request with specified language
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/courses/1610612925989?lang=en-US
Public Endpoints
NOTE
- Public Endpoint.
- Private Endpoint that requires user authorization.
- Public personal information: name, emails, ist-id, photo and webpage.
- Information about the users’s academic schedule and calendar.
- Curricular information about both enrolling and teaching courses.
- Curricular information about both enrolling and teaching courses.
- Information about payments and debt.
GET /about
This endpoint returns some basic information about the institution where the
application is deployed. It also returns a list of RSS feeds, the current academic term, available languages and default language.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/about
Example Response
{
"institutionName" : "Instituto Superior Técnico" ,
"institutionUrl" : "" ,
"rssFeeds" : [
{
"description" : "News" ,
"url" : ""
},
{
"description" : "Events" ,
"url" : ""
}
],
"rss" : {
"news" : "" ,
"events" : ""
}
"currentAcademicTerm" : "1ºSemestre 2013/2014" ,
"languages" : [
"en-US" ,
"pt-PT"
],
"language" : "pt-PT"
}
GET /academicterms
This endpoint returns all the academic terms available to be used in other endpoints as academicTerm query parameter.
The returned object keys are not ordered in any particular way.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/academicterms
Example Response
{
"2013/2014" : [
"2º Semestre 2013/2014" ,
"1ºSemestre 2013/2014"
],
"2012/2013" : [
"2 Semestre 2012/2013" ,
"1 Semestre 2012/2013"
],
"2011/2012" : [
"2 Semestre 2011/2012" ,
"1 Semestre 2011/2012"
],
"2010/2011" : [
"2 Semestre 2010/2011" ,
"1 Semestre 2010/2011"
],
"2009/2010" : [
"2 Semestre 2009/2010" ,
"1 Semestre 2009/2010"
]
}
GET /canteen
This endpoint returns the menu information of Alameda’s canteen.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/canteen
Example Response
[
{
"day" : "24/2/2014" ,
"meal" : [
{
"info" : [
{
"menu" : "Menú Dieta" ,
"name" : "Solha grelhada com legumes" ,
"type" : "Dieta"
},
{
"menu" : "Menú Macrobiótica" ,
"name" : "Salada de tofu" ,
"type" : "Macrobiótico"
},
{
"menu" : "Menú Tradicional" ,
"name" : "Bifinhos de porco com esparguete" ,
"type" : "Carne"
},
{
"menu" : "Menú Tradicional" ,
"name" : "Solha au meunier" ,
"type" : "Peixe"
},
{
"menu" : "Menú Tradicional" ,
"name" : "Sopa de feijão verde e cenoura" ,
"type" : "Sopa"
}
],
"type" : "Almoço"
},
{
"info" : [
{
"menu" : "Menú Macrobiótica" ,
"name" : "Pataniscas de legumes com arroz" ,
"type" : "Macrobiótico"
},
{
"menu" : "Menú Tradicional" ,
"name" : "Carne de porco à alentejana" ,
"type" : "Carne"
},
{
"menu" : "Menú Tradicional" ,
"name" : "Red fish assado" ,
"type" : "Peixe"
},
{
"menu" : "Menú Tradicional" ,
"name" : "Sopa juliana" ,
"type" : "Sopa"
}
],
"type" : "Jantar"
}
]
}
]
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/contacts
Example Response
[
{
"name" : "Campus Alameda" ,
"fax" : "+351218499242" ,
"phone" : "+351218417000" ,
"email" : "" ,
"address" : "Av. Rovisco Pais, 1" ,
"postalCode" : "1049-001 Lisboa" ,
"workingHours" : ""
},
{
"name" : "Direção de Serviços de Informática - Alameda" ,
"fax" : "" ,
"phone" : "+351218417506" ,
"email" : "dsi@tecnico.ulisboa.pt" ,
"address" : "" ,
"postalCode" : "" ,
"workingHours" : "9h30 - 12h30 / 14h00 - 16h30"
}
]
GET /courses/{id}
A course is a concrete unit of teaching that typically lasts one academic term.
This endpoint shows some information regarding a particular course. The same
course may be lectured simultaneously in multiple degrees during the same
academic term.
The “competences” field holds curricular information for each set of degrees in
which the course is lectured. Usually this information is the same for all
the associated degrees.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/courses/1610612925989
Example Response
{
"acronym" : "FInd3" ,
"name" : "Frio Industrial" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"evaluationMethod" : "1 trabalho de grupo, com avaliação ..." ,
"numberOfAttendingStudents" : 123 ,
"announcementLink" : "https://fenix.tecnico.ulisboa.pt/rss.do?boardId=123" ,
"summaryLink" : "https://fenix.tecnico.ulisboa.pt/publico/rss.do?summaryId=123" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/FInd3" ,
"competences" : [
{
"id" : "1313123123232" ,
"program" : "" ,
"bibliographicReferences" : [
{
"author" : "Roriz L. et al" ,
"reference" : "Ed. Orion " ,
"title" : "Climatização: concepção, e instalação" ,
"year" : "2006" ,
"type" : "MAIN" ,
"url" : null
}
],
"degrees" : [
{
"id" : "2761663977513" ,
"name" : "Mestrado em Engenharia e Gestão da Energia" ,
"acronym" : "MEGE"
}
]
}
],
"teachers" : [
{
"name" : "John Doe" ,
"istId" : "ist112345" ,
"mails" : [
"john.doe@ist.utl.pt"
],
"urls" : [
"http://web.ist.utl.pt/ist112345/"
]
}
]
}
GET /courses/{id}/evaluations
An evaluation is a component of a course in which the teacher determines
the extent of the students understanding of the program. Current known
implementations of evaluations are: tests, exams, projects, online tests
and ad-hoc evaluations.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/courses/1610612926005/evaluations
Example Response
[
{
"type" : "TEST" ,
"name" : "Teste 1º Teste" ,
"evaluationPeriod" : {
"start" : "2013-10-26 09:00" ,
"end" : "2013-10-26 11:00"
},
"enrollmentPeriod" : {
"start" : "2013-10-01 14:25:32" ,
"end" : "2013-10-24 17:52:44"
},
"isInEnrolmentPeriod" : false ,
"rooms" : [
{
"type" : "ROOM" ,
"id" : "2448131362251" ,
"name" : "C01 - sala de aula" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
},
"description" : "C01 - Pavilhão Central (Alameda)" ,
"capacity" : {
"examCapacity" : 56 ,
"normalCapacity" : 24
}
},
{
"type" : "ROOM" ,
"id" : "2448131362449" ,
"name" : "C11 - Sala aula" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
"description" : "C11 - Pavilhão Central (Alameda)" ,
"capacity" : {
"examCapacity" : 87 ,
"normalCapacity" : 12
}
}
]
}
]
GET /courses/{id}/groups
Groups are used in courses for a wide range of purposes. The most typical are
for creating teams of students for laboratories or projects. Some groups are
shared among different courses. The enrolment of student groups may be atomic
or individual, and may be restricted to an enrolment period.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/courses/1610612926005/groups
Example Response
[
{
"name" : "Projeto de Avaliação de Projetos" ,
"description" : "Cada grupo de trabalho tem como objetivo..." ,
"enrolmentPeriod" : {
"start" : "2013-10-01 14:25:32" ,
"end" : "2013-10-24 17:52:44"
},
"enrolmentPolicy" : "ATOMIC" ,
"minimumCapacity" : 1 ,
"maximumCapacity" : 3 ,
"idealCapacity" : 2 ,
"associatedCourses" : [
{
"name" : "Matemática Computacional" ,
"id" : "1132132564548" ,
"degrees" : [
{
"name" : "Licenciatura Bolonha em Engenharia de Telecomunicações e Informática" ,
"acronym" : "LERC" ,
"id" : "2761663971586"
},
{
"name" : "Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda" ,
"acronym" : "MEIC-A" ,
"id" : "2761663977513"
},
{
"name" : "Mestrado Integrado em Engenharia Civil" ,
"acronym" : "MEC" ,
"id" : "2761663971466"
}
]
},
{
"name" : "Mecânica Quantica" ,
"id" : "1132132564555" ,
"degrees" : [
{
"name" : "Mestrado Integrado em Arquitectura" ,
"acronym" : "MA" ,
"id" : "2761663971465"
},
{
"name" : "Diploma de Estudos Avançados em Engenharia Informática e de Computadores" ,
"acronym" : "DEIC" ,
"id" : "2761663971783"
}
]
}
]
}
]
GET /courses/{id}/schedule
Each course is lectured during a specific set of intervals. These intervals
make up the lesson period for that course. Each course also has a curricular
load that specifies the time each student will expend with the course. Each
shift is the possible schedule in which a student should enrol.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/courses/1610612925989/schedule
Example Response
{
"lessonPeriods" : [
{
"start" : "2014-02-21 00:00:00" ,
"end" : "2014-04-12 00:00:00"
},
{
"start" : "2014-04-18 00:00:00" ,
"end" : "2014-05-29 00:00:00"
}
],
"courseLoads" : [
{
"type" : "TEORICA" ,
"totalQuantity" : 42 ,
"unitQuantity" : 1.5
},
{
"type" : "LABORATORIAL" ,
"totalQuantity" : 30 ,
"unitQuantity" : 3
}
],
"shifts" : [
{
"name" : "AED2T01" ,
"types" : [
"TEORICA"
],
"occupation" : {
"current" : 120 ,
"max" : 120
},
"lessons" : [
{
"start" : "2014-02-21 10:00:00" ,
"end" : "2014-02-21 12:00:00" ,
"room" : {
"type" : "ROOM" ,
"name" : "Ga1" ,
"id" : "132115446846" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
},
{
"start" : "2014-03-21 10:00:00" ,
"end" : "2014-03-21 12:00:00" ,
"room" : {
"type" : "ROOM" ,
"name" : "Ga1" ,
"id" : "132115446846" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
},
{
"start" : "2014-05-21 10:00:00" ,
"end" : "2014-05-21 12:00:00" ,
"room" : {
"type" : "ROOM" ,
"name" : "Ga3" ,
"id" : "132115446847" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
}
],
"rooms" : [
{
"type" : "ROOM" ,
"id" : "132115446847" ,
"name" : "Ga3 - S. aula" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
},
"description" : "Ga3 - Pavilhão Central (Alameda)" ,
"capacity" : {
"normal" : 80 ,
"exam" : 40
}
}
]
},
{
"name" : "AED2L03" ,
"types" : [
"LABORATORIAL"
],
"occupation" : {
"current" : 79 ,
"max" : 95
},
"lessons" : [
{
"start" : "2014-02-23 10:00:00" ,
"end" : "2014-02-23 13:00:00" ,
"room" : {
"type" : "ROOM" ,
"name" : "F1" ,
"id" : "132115446844" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
},
{
"start" : "2014-03-23 10:00:00" ,
"end" : "2014-03-23 13:00:00" ,
"room" : {
"type" : "ROOM" ,
"name" : "F2" ,
"id" : "132115446843" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
},
{
"start" : "2014-05-23 10:00:00" ,
"end" : "2014-05-23 13:00:00" ,
"room" : {
"type" : "ROOM" ,
"name" : "F1" ,
"id" : "132115446844" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
}
],
"rooms" : [
{
"type" : "ROOM" ,
"id" : "2448131361685" ,
"name" : "F1 - Sala de aula" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
},
"description" : "F1 - Pavilhão de Informática I (Alameda)" ,
"capacity" : {
"normal" : 60 ,
"exam" : 30
}
}
]
}
]
}
GET /courses/{id}/students
This endpoint lists all the students attending the specified course. For each
student it indicates the corresponding degree. The endpoint also returns the
number of students officially enroled in the course.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/courses/1610612925989/students
Example Response
{
"enrolmentCount" : 32 ,
"attendingCount" : 41 ,
"students" : [
{
"username" : "ist1234" ,
"degree" : {
"name" : "Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda" ,
"acronym" : "MEIC-A" ,
"id" : "2761663971475"
}
},
{
"username" : "ist1236" ,
"degree" : {
"name" : "Mestrado Integrado em Arquitectura" ,
"acronym" : "MA" ,
"id" : "2761663971465"
}
}
]
}
GET /degrees
This endpoint returns the information for all degrees.
If no academicTerm is defined it returns the degree information for the currentAcademicTerm
.
Query Parameters
academicTerm - one of the academicTerms available at /academicterms
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/degrees?academicTerm=2013/2014
Example Response
[
{
"id" : "2761663977513" ,
"name" : "Engenharia e Gestão da Energia" ,
"acronym" : "MEGE" ,
"academicTerms" : [
"2013/2014" ,
"2012/2013"
],
"academicTerm" : "2013/2014" ,
"type" : "BOLONHA_MASTER_DEGREE" ,
"typeName" : "Master Degree (MSc)" ,
"url" : "https://fenix.tecnico.ulisboa.pt/cursos/mege" ,
"campus" : [
{
"type" : "CAMPUS" ,
"id" : "2465311230081" ,
"name" : "Alameda"
}
],
"info" : {
"description" : "" ,
"objectives" : "" ,
"designFor" : "" ,
"requisites" : "" ,
"profissionalExits" : "" ,
"history" : "" ,
"operationRegime" : "" ,
"gratuity" : "" ,
"links" : ""
},
"teachers" : [
{
"name" : "John Doe" ,
"istId" : "ist11234" ,
"mails" : [
"foo@ist.utl.pt" ,
"bar@ist.utl.pt"
],
"urls" : []
}
]
}
]
GET /degrees/{id}
This endpoint returns the information for the {id} degree.
If no academicTerm is defined it returns the degree information for the currentAcademicTerm
.
Query Parameters
academicTerm - one of the academicTerms available at /academicterms
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/degrees/2761663977513?academicTerm=2013/2014
Example Response
{
"id" : "2761663977513" ,
"name" : "Engenharia e Gestão da Energia" ,
"acronym" : "MEGE" ,
"academicTerms" : [
"2013/2014" ,
"2012/2013"
],
"currentAcademicTerm" : "2013/2014" ,
"type" : "BOLONHA_MASTER_DEGREE" ,
"typeName" : "Master Degree (MSc)" ,
"url" : "https://fenix.tecnico.ulisboa.pt/cursos/mege" ,
"campus" : [
{
"type" : "CAMPUS" ,
"id" : "2465311230081" ,
"name" : "Alameda"
}
],
"info" : {
"description" : "" ,
"objectives" : "" ,
"designFor" : "" ,
"requisites" : "" ,
"profissionalExits" : "" ,
"history" : "" ,
"operationRegime" : "" ,
"gratuity" : "" ,
"links" : ""
},
"teachers" : [
{
"name" : "John Doe" ,
"istId" : "ist11234" ,
"mails" : [
"foo@ist.utl.pt" ,
"bar@ist.utl.pt"
],
"urls" : []
}
]
}
GET /degrees/{id}/courses
This endpoint returns the informations for a degree’s courses.
If no academicTerm is defined it returns the degree information for the currentAcademicTerm
.
Query Parameters
academicTerm - one of the academicTerms available at /academicterms
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/degrees/2761663977513/courses?academicTerm=2013/2014
Example Response
[
{
"acronym" : "FInd3" ,
"credits" : "4.5" ,
"name" : "Frio Industrial" ,
"id" : "1610612925565" ,
"academicTerm" : "1ºSemestre 2013/2014"
},
{
"acronym" : "MFC3" ,
"credits" : "6.0" ,
"name" : "Mecânica de Fluídos Computacional" ,
"id" : "1610612925545" ,
"academicTerm" : "1ºSemestre 2013/2014"
}
]
GET /domainModel
This endpoint returns a representation of the domain model for the application.
While this information is returned in a JSON format, the concepts underlying
the domain model can be found on the Fenix Framework site:
http://fenix-framework.github.io/DML.html
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/domainModel
Example Response
{
"classes" : [
{
"className" : "net.sourceforge.fenixedu.domain.Shift" ,
"interfaces" : [],
"modifiers" : [],
"slots" : [
{
"type" : "java.lang.Integer" ,
"name" : "lotacao" ,
"modifiers" : [],
"options" : []
},
{
"type" : "java.lang.String" ,
"name" : "nome" ,
"modifiers" : [],
"options" : []
},
{
"type" : "java.lang.String" ,
"name" : "comment" ,
"modifiers" : [],
"options" : []
}
]
}
],
"relations" : [
{
"name" : "RootDomainObjectNonRegularTeachingService" ,
"roles" : [
{
"type" : "net.sourceforge.fenixedu.domain.NonRegularTeachingService" ,
"name" : "nonRegularTeachingServices" ,
"modifiers" : [],
"multiplicityLower" : "0" ,
"multiplicityUpper" : "*"
},
{
"type" : "org.fenixedu.bennu.core.domain.Bennu" ,
"name" : "rootDomainObject" ,
"modifiers" : [],
"multiplicityLower" : "0" ,
"multiplicityUpper" : "1"
}
]
}
]
}
GET /parking
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/parking
Example Response
{
"Alameda" : {
"address" : "Avenida Rovisco Pais, 1, 1049-001 Lisboa" ,
"campus" : "Alameda" ,
"description" : "Parque Estacionamento do campus Alameda do IST" ,
"freeSlots" : 624 ,
"latlng" : "38.738137,-9.139135" ,
"name" : "Alameda" ,
"total" : 680 ,
"updated" : "2016-06-26 03:06:56" ,
"workingHours" : "24h"
},
"Arco Do Cego" : {
"address" : "Parque do Arco Cego, Avenida João Crisóstomo, 1000-178 Lisboa" ,
"campus" : "Alameda" ,
"description" : "Parque Estacionamento do Arco do Cego" ,
"freeSlots" : 62 ,
"latlng" : "38.73640895,-9.14313902" ,
"name" : "Arco do Cego" ,
"total" : 70 ,
"updated" : "2016-06-26 02:03:45" ,
"workingHours" : "24h"
}
}
GET /person
This endpoint allows to access the current person information.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person
Example Response
{
"roles" : [
{
"type" : "TEACHER" ,
"department" : {
"name" : "Departamento de Engenharia Informática" ,
"acronym" : "DEI"
}
},
{
"type" : "STUDENT" ,
"registrations" : [
{
"name" : "Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda" ,
"acronym" : "MEIC-A" ,
"id" : "2761663971475" ,
"academicTerms" : [
"1ºSemestre 2013/2014" ,
"2º Semestre 2013/2014"
]
}
]
},
{
"type" : "ALUMNI" ,
"concludedRegistrations" : [
{
"name" : "Licenciatura Bolonha em Engenharia Informática e de Computadores - Alameda" ,
"acronym" : "LEIC-A" ,
"id" : "2761663971474" ,
"academicTerms" : [
"1 Semestre 2010/2011" ,
"2 Semestre 2010/2011" ,
"1 Semestre 2011/2012" ,
"1 Semestre 2012/2013" ,
"2 Semestre 2012/2013"
]
}
]
}
],
"campus" : "Alameda" ,
"photo" : {
"type" : "image/png" ,
"data" : "iVBORw0KGgoAAAANSUhEUgAAAGQ..."
},
"name" : "John Doe" ,
"gender" : "MALE" ,
"birthday" : "21/11/1990" ,
"username" : "ist112345" ,
"email" : "john.doe@ist.utl.pt" ,
"personalEmails" : [
"john.doe@ist.utl.pt"
],
"workEmails" : [],
"webAddresses" : [
"http://web.ist.utl.pt/ist112345/"
],
"workWebAddresses" : [
"http://web.ist.utl.pt/ist112345/"
]
}
GET /person/calendar/classes
This endpoint returns the user’s class information. This information can be retrieved both in iCalendar and JSON formats.
Query Parameters
format - “calendar” (iCal format) or “json”
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/calendar/classes?format=json
Example Response
{
"academicTerm" : "2013/2014" ,
"events" : [
{
"classPeriod" : {
"start" : "18/09/2013 17:30" ,
"end" : "18/09/2013 19:00"
},
"location" : [
{
"type" : "ROOM" ,
"name" : "F4" ,
"id" : "2448131363674" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
],
"title" : "Gestão : Problemas" ,
"course" : {
"acronym" : "Ges5" ,
"name" : "Gestão" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/ges5/" ,
"id" : "1610612925989"
}
},
{
"classPeriod" : {
"start" : "28/10/2013 14:30" ,
"end" : "28/10/2013 15:30"
},
"location" : [
{
"type" : "ROOM" ,
"name" : "QA02.4" ,
"id" : "2448131363664" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
],
"title" : "Análise Complexa e Equações Diferenciais : Teórica" ,
"course" : {
"acronym" : "aced42" ,
"name" : "Análise Complexa e Equações Diferenciais" ,
"academicTerm" : "1º Semester 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/aced42/" ,
"id" : "1610612925691"
}
}
]
}
GET /person/calendar/evaluations
This endpoint returns the students’s evaluations information. This information can be retrieved both in iCalendar and JSON formats.
Query Parameters
format - “calendar” (iCal format) or “json”
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/calendar/evaluations?format=json
Example Response
{
"academicTerm" : "2013/2014" ,
"events" : [
{
"evaluationPeriod" : {
"start" : "04/10/2013 00:57" ,
"end" : "04/10/2013 01:57"
},
"location" : [],
"title" : "Inicio das inscrições para 2º Teste : Análise Complexa e Equações Diferenciais" ,
"course" : {
"acronym" : "aced42" ,
"name" : "Análise Complexa e Equações Diferenciais" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/aced42/" ,
"id" : "1610612925691"
}
},
{
"evaluationPeriod" : {
"start" : "06/11/2013 19:00" ,
"end" : "04/10/2013 21:00"
},
"location" : [
{
"type" : "ROOM" ,
"name" : "F2" ,
"id" : "2448131363664" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
],
"title" : "1º Teste : Gestão" ,
"courses" : [
{
"acronym" : "Ges5" ,
"name" : "Gestão" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/ges5/" ,
"id" : "1610612925989"
}
]
}
]
}
GET /person/courses
This endpoint returns the user’s course information.
Query Parameters
academicTerm - one of the academicTerms available at /academicterms
If no academicTerm is defined it returns the degree information for the currentAcademicTerm
.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/courses?academicTerm=2013/2014
Example Response
{
"enrolments" : [
{
"id" : "1610612926309" ,
"acronym" : "IAC4" ,
"name" : "Introdução à Arquitetura de Computadores" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/iac4/2013-2014/1-semestre" ,
"grade" : null
},
{
"id" : "1610612925989" ,
"acronym" : "Ges5" ,
"name" : "Gestão" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/ges5/2013-2014/1-semestre" ,
"grade" : null
}
],
"teaching" : [
{
"id" : "1610612926363" ,
"acronym" : "SE2" ,
"name" : "Sistemas Entre-Pares e Redes Sobrepostas" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/SE2/2013-2014/1-semestre"
}
]
}
GET /person/curriculum
Complete curriculum (only for students)
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/curriculum
Example Response
[
{
"degree" : {
"name" : "Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda" ,
"acronym" : "MEIC-A" ,
"id" : "2761663971475"
},
"start" : "19/07/2012" ,
"end" : null ,
"credits" : 7.5 ,
"average" : 10 ,
"calculatedAverage" : 10 ,
"isFinished" : false ,
"numberOfApprovedCourses" : 1 ,
"currentYear" : 1 ,
"approvedCourses" : [
{
"course" : {
"name" : "Unidade Curricular Aplicacional 1 (Língua Natural)" ,
"id" : "1610612905780" ,
"acronym" : "LN-2" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/ln-2/2012-2013/1-semestre"
},
"grade" : "10" ,
"ects" : 7.5
}
]
}
]
GET /person/evaluations
This endpoint returns the student’s written evaluation information.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/evaluations
Example Response
[
{
"id" : "2512556536123" ,
"type" : "TEST" ,
"name" : "Teste 1º Teste" ,
"evaluationPeriod" : {
"start" : "15/11/2013 18:00" ,
"end" : "15/11/2013 21:00"
},
"isInEnrolmentPeriod" : false ,
"enrollmentPeriod" : {
"start" : "2013-11-07 15:00:25" ,
"end" : "2013-11-12 13:00:25"
},
"isEnrolled" : true ,
"courses" : [
{
"id" : "1610612926408" ,
"acronym" : "GPI4" ,
"name" : "Gestão de Projectos Informáticos" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/gpi4/2013-2014/1-semestre"
}
],
"rooms" : [
{
"type" : "ROOM" ,
"id" : "2448131363664" ,
"name" : "F2 - Sala de Aula" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
},
{
"type" : "ROOM" ,
"id" : "2448131363667" ,
"name" : "FA1 - Anfiteatro" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
],
"assignedRoom" : {
"type" : "ROOM" ,
"id" : "2448131363674" ,
"name" : "F4 - Sala de Aula" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
}
},
{
"id" : "2512556536124" ,
"type" : "EXAM" ,
"name" : "Exame 1º Época" ,
"evaluationPeriod" : {
"start" : "10/01/2014 08:00" ,
"end" : "10/01/2014 11:00"
},
"isInEnrolmentPeriod" : false ,
"enrollmentPeriod" : {
"start" : "2013-12-20 17:00:22" ,
"end" : "2014-01-07 12:00:22"
},
"isEnrolled" : false ,
"courses" : [
{
"id" : "1610612926115" ,
"acronym" : "ASof22" ,
"name" : "Arquitecturas de Software" ,
"academicTerm" : "1ºSemestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/asof22/2013-2014/1-semestre"
}
],
"rooms" : [],
"assignedRoom" : null
}
]
PUT /person/evaluations/{id}
This endpoint allows the student to enroll or disenroll from a written evaluation.
Query Parameters
enrol - “yes” or “no”
Example Request
PUT
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/evaluations/2512556533022?enrol=yes
Example Response
returns the same as the endpoint above.
GET /person/payments
This endpoint returns user’s payments information.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/person/payments
Example Response
{
"completed" : [
{
"id" : "845322578300529" ,
"amount" : "12.34" ,
"type" : "CASH" ,
"description" : "Taxa de Secretaria e Seguro - 2012/2013" ,
"date" : "30/12/2002"
}
],
"pending" : [
{
"id" : "843325568400987" ,
"description" : "Propina" ,
"paymentPeriod" : {
"start" : "13/09/2013 00:00" ,
"end" : "31/12/2013 23:59"
},
"entity" : "12345" ,
"reference" : "111 222 333" ,
"amount" : "1234.56"
}
]
}
GET /shuttle
This endpoint returns the shuttle information
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/shuttle
Example Response
{
"stations" : [
{
"name" : "Alameda" ,
"address" : "Avenida Manuel da Maia 36" ,
"latlng" : "38.736926,-9.136565"
},
{
"name" : "Cacém" ,
"address" : "Rua Elias Garcia 2" ,
"latlng" : "38.766274,-9.298728"
}
],
"date" : [
{
"start" : "15/09/2014" ,
"end" : "30/09/2014" ,
"type" : "weekday"
},
{
"start" : "01/09/2014" ,
"end" : "12/09/2014" ,
"type" : "holidays"
}
],
"trips" : [
{
"type" : "weekday" ,
"stations" : [
{
"hour" : "07.15" ,
"station" : "Alameda"
},
{
"hour" : "07.25" ,
"station" : "Sete-Rios"
},
{
"hour" : "07.55" ,
"station" : "Taguspark"
}
]
},
{
"type" : "holidays" ,
"stations" : [
{
"hour" : "08.00" ,
"station" : "Alameda"
},
{
"hour" : "08.15" ,
"station" : "Sete-Rios"
},
{
"hour" : "08.40" ,
"station" : "Taguspark"
}
]
}
]
}
GET /spaces
This endpoint returns the information about the campi.
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/spaces
Example Response
[
{
"id" : "2465311230082" ,
"name" : "Taguspark" ,
"type" : "CAMPUS"
},
{
"id" : "2465311230081" ,
"name" : "Alameda" ,
"type" : "CAMPUS"
}
]
GET /spaces/{id}
This endpoint returns information about the space for a given {id}, its contained and parent spaces. The {id} can be for any of these types: “CAMPUS”, “BUILDING”, “FLOOR” or “ROOM”.
Query Parameters
day - “dd/mm/yyyy”
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/spaces/2448131363667?day=21/02/2014
Example Response
{
"type" : "ROOM" ,
"id" : "2448131363667" ,
"name" : "FA1 - Anfiteatro" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
},
"containedSpaces" : [],
"parentSpace" : {
"type" : "FLOOR" ,
"id" : "2723009268079" ,
"name" : "0" ,
"topLevelSpace" : {
"type" : "CAMPUS" ,
"id" : "2448131360897" ,
"name" : "Alameda"
}
},
"description" : "FA1 - Pavilhão de Informática I (Alameda)" ,
"capacity" : {
"normal" : 93 ,
"exam" : 30
},
"events" : [
{
"type" : "LESSON" ,
"start" : "10:30" ,
"end" : "12:00" ,
"weekday" : "Sex" ,
"day" : "21/02/2014" ,
"period" : {
"start" : "21/02/2014 10:30" ,
"end" : "21/02/2014 12:00"
},
"info" : "T" ,
"course" : {
"id" : "1610612946588" ,
"acronym" : "IAED7645" ,
"name" : "Introdução aos Algoritmos e Estruturas de Dados" ,
"academicTerm" : "2 Semestre 2013/2014" ,
"url" : "https://fenix.tecnico.ulisboa.pt/disciplinas/iaed7645/2013-2014/2-semestre"
}
}
]
}
GET /spaces/{id}/blueprint
This endpoint returns the space’s blueprint in the required format
Query Parameters
format - “jpeg” or “dwg”
Example Request
GET
https://fenix.tecnico.ulisboa.pt/api/fenix/v1/spaces/2448131360897/blueprint?format=jpeg
Example Response
response content-type : “application/dwg” or “image/jpg”
response content: raw image data