canonical: https://jentic.com/apis/portalava.com.br/portalava

# Portalava IESDE

The IESDE API exposes the courses and learning content of the IESDE distance-learning (EAD) web service on portalava.com.br. It returns courses, curriculum grades, the disciplines inside a grade, question banks with their answer alternatives, course PDFs and textbook references, and the video lesson player for a discipline. It also lists student enrolments (matrículas) with their status and registration date, and accepts new enrolment requests. Every operation is a POST under the web_service path that returns JSON.

## For AI agents

Read IESDE distance-learning courses, grades, disciplines, question banks, PDFs, and video lessons, list student enrolments, and submit a new enrolment.

## Scope

Does not handle grading, payments, or live classes. Use for reading IESDE course content and managing enrolments only.

## Capabilities

- List IESDE courses with their CursoID, status, and certificate description, paginated with pagina and registros_pagina
- Retrieve the curriculum grades and the disciplines inside a grade by GradeID
- Pull the question bank for disciplines, including the question format and statement text
- Fetch the answer alternatives for discipline questions, including which alternative is correct
- Get the textbook PDFs and video lesson player linked to a discipline
- List student enrolments with MatriculaID, LoginID, status, and registration date

## Use cases

### Agent-assisted course lookups through Jentic

An education coordinator asks their agent which IESDE courses are active and which disciplines they contain. Through Jentic the agent finds the courses and disciplines operations by intent, sends the digest credentials and EAD-API-KEY header that your own instance holds, and pages through results with pagina and registros_pagina. The agent replies with course names and discipline lists without anyone wiring digest authentication by hand.

Example prompt: Call POST `/getCursos/format/json` with pagina 1 and registros_pagina 50, then call POST `/getDisciplinas/format/json` with a GradeID to list the disciplines for that grade

### Building practice quizzes from the question bank

A tutoring tool wants to generate practice tests for students on an IESDE discipline. The question bank operation returns each question's QuestaoID, format such as Objetiva, and statement, and the alternatives operation returns the answer texts with the Correta marker. Joining the two on QuestaoID gives a ready quiz with answer keys.

Example prompt: Call POST `/getBancoQuestoesDisciplinas/format/json` and POST `/getAlternativasDisciplina/format/json`, join the results on QuestaoID, and assemble a ten-question quiz with its answer key

### Enrolment status reporting

A partner school needs a weekly view of who is enrolled and whether each enrolment is still active. The enrolments operation returns MatriculaID, LoginID, Situacao (A for active), and DtCadastro for each record, paginated, so a report can count new and active enrolments over time.

Example prompt: Page through POST `/getMatriculas/format/json` with registros_pagina 100 and count the enrolments whose Situacao is A

### Delivering course materials to students

A student portal links each discipline to its reading and video content. The PDFs operation lists textbook references with DisciplinaID, LivroDisciplinaID, and a description, while separate operations return a PDF and the video lesson player, so the portal can surface the right material next to each discipline.

Example prompt: Call POST `/getPdfsDisciplina/format/json` and list each LivroDisciplinaID with its Descricao for discipline 103101

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/getCursos/format/json` | List courses |
| POST | `/getGrades/format/json` | List curriculum grades |
| POST | `/getDisciplinas/format/json` | List disciplines by GradeID |
| POST | `/getBancoQuestoesDisciplinas/format/json` | Get discipline question bank |
| POST | `/getAlternativasDisciplina/format/json` | Get question answer alternatives |
| POST | `/getMatriculas/format/json` | List student enrolments |
| POST | `/cadastro/format/json` | Submit an enrolment |

## Key resources

- **Courses and grades** — List courses and the curriculum grades they are built from
- **Disciplines** — List the disciplines in a grade, with linked PDFs and the video lesson player
- **Question bank** — Retrieve discipline questions and their answer alternatives
- **Enrolments** — List student enrolments and submit a new enrolment

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 37 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 70 / 100
  - AI-Readiness & Agent Experience: 22 / 100
  - Agent Usability: 94 / 100
  - Security: 20 / 100
  - AI Discoverability: 25 / 100
- **View full report:** https://jentic.com/apis/portalava.com.br/portalava/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring IESDE by hand means implementing HTTP Digest authentication, adding the EAD-API-KEY header to every POST, and working out which format/json route returns which entity. Through Jentic you install once, import IESDE from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** IESDE routes carry no resource ids in the URL path, so rules bound which operations your agent may call rather than which course or student. You choose the operations it may call, so the enrolment submission at `/cadastro/format/json` is not included unless you add it.
- **Credential handling:** Your IESDE digest credentials and EAD-API-KEY are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list courses' or 'get the question bank for a discipline', and Jentic returns the matching IESDE operation with its input schema, so the agent does not need to decode the Portuguese route names.

## Related APIs

- **Moodle Web Services API** — Open-source LMS web services for courses, enrolments, and quizzes
- **Absorb LMS API** — Corporate LMS with courses, enrolments, and learner records
- **Classe365 API** — Student information system for records, grades, and attendance

## FAQ

### What authentication does the IESDE API use?

Per its OpenAPI spec, the IESDE web service uses HTTP Digest authentication (the DigestAuth scheme), and each operation also declares an EAD-API-KEY request header. Through Jentic both the digest credentials and the EAD-API-KEY value are stored by your own instance and attached when the agent calls an operation.

### Can I list the disciplines in a course grade with the IESDE API?

Yes. POST `/getGrades/format/json` returns the curriculum grades, and POST `/getDisciplinas/format/json` takes a GradeID query parameter and returns each discipline's DisciplinaID, GradeID, CursoID, and name. From there, the PDFs and video lesson operations return the material linked to a discipline.

### What are the rate limits for the IESDE API?

The OpenAPI spec does not specify rate limits for the IESDE web service. Check with IESDE through the portal at https://ead.portalava.com.br for current limits, and use the pagina and registros_pagina parameters on the course and enrolment lists to keep each response small.

### Is there an IESDE MCP server?

You don't need an MCP server to give your agent IESDE. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the course, discipline, and enrolment operations it needs, discovered on demand instead of loaded into its context up front.

### Can I limit what my agent is allowed to do with the IESDE API?

Yes. For example, allow only POST `/getCursos/format/json` and POST `/getDisciplinas/format/json`, and the agent can browse courses but cannot submit an enrolment through POST `/cadastro/format/json` or pull enrolment records. Every call it makes is logged so you can review what it read.

### How do I pull a discipline question bank through Jentic?

Search Jentic for 'get the question bank for a discipline', load POST `/getBancoQuestoesDisciplinas/format/json`, and execute it; then load POST `/getAlternativasDisciplina/format/json` to fetch the matching answer alternatives by QuestaoID. To run it on your own infrastructure, install Jentic One from its GitHub repo.
