Introduction
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
Auth
Gera o link de autenticação do Google (via Socialite) para iniciar o fluxo de login.
Este endpoint recebe o URL de redirecionamento pós-login e retorna o link do Google para o qual o frontend deve direcionar o usuário. O parâmetro 'redirect_to' é usado como 'state' no OAuth para manter a segurança e o contexto da aplicação.
Example request:
curl --request GET \
--get "http://localhost/api/v1/auth/google/link?redirect_to=http%3A%2F%2Fwww.bailey.biz%2Fquos-velit-et-fugiat-sunt-nihil-accusantium-harum.html" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"redirect_to\": \"architecto\"
}"
const url = new URL(
"http://localhost/api/v1/auth/google/link"
);
const params = {
"redirect_to": "http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"redirect_to": "architecto"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"url": "string"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Callback de Autenticação via Google Socialite.
Este endpoint processa o retorno do Google após a autorização do usuário. Ele localiza ou cria o usuário na base de dados, gera um Personal Access Token (Sanctum) e redireciona o usuário de volta para o endereço fornecido no parâmetro 'state' da query string.
Example request:
curl --request GET \
--get "http://localhost/api/v1/auth/google/callback?state=meu-front.com" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/auth/google/callback"
);
const params = {
"state": "meu-front.com",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Erro na autenticação com google",
"error": "Internal Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
token
O token de acesso é anexado à URL de redirecionamento como um fragmento (#token=...).
POST api/v1/auth/logout
Example request:
curl --request POST \
"http://localhost/api/v1/auth/logout" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/auth/logout"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Department
Listar todos os departamentos.
requires authentication
Retorna uma coleção simples contendo o ID e o nome de todos os departamentos cadastrados, ordenados alfabeticamente.
Example request:
curl --request GET \
--get "http://localhost/api/v1/departments" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/departments"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
[
{
"id": 1,
"name": "Financeiro"
},
{
"id": 2,
"name": "Tecnologia"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Disciplinas
Endpoints para consulta e gerenciamento de disciplinas via integração ONE.
GET api/v1/disciplines
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/disciplines?name=Anatomia&page=1&per_page=15&order=asc&sort_by=name" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/disciplines"
);
const params = {
"name": "Anatomia",
"page": "1",
"per_page": "15",
"order": "asc",
"sort_by": "name",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/disciplines/{id}
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/disciplines/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/disciplines/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/disciplines/{id}/curriculum
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/disciplines/architecto/curriculum?name=Enfermagem+01%2F2026&order=asc&sort_by=term&page=1&per_page=15&has_content=&status=in_progress" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/disciplines/architecto/curriculum"
);
const params = {
"name": "Enfermagem 01/2026",
"order": "asc",
"sort_by": "term",
"page": "1",
"per_page": "15",
"has_content": "0",
"status": "in_progress",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Domain
GET api/v1/domains
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/domains" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/domains"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Endpoints
Buscar solicitação de repasse no portalgef api
Example request:
curl --request GET \
--get "http://localhost/api/v1/portal-gef/split-requests/2" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/portal-gef/split-requests/2"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"id": 1,
"split_type": "Graduação",
"request_datetime": "2026-04-01T16:40:20.635Z",
"calculation_period": "[2026-03-01,2026-03-10)",
"gross_amount": "0.00",
"operation_type": "PIX",
"status": "payment_analysis",
"observation": "test",
"agent": {
"id": 3,
"people": {
"name": "FULANO DA SILVA - CARATINGA",
"document_cpf": "00030000000"
}
},
"pix_key": {
"id": 6,
"key": "23232323232",
"type": "CPF"
}
}
Example response (404, Solicitação de repasse não encontrada!):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Undocumented function
Example request:
curl --request GET \
--get "http://localhost/api/v1/portal-gef/split-requests?date_start=2023-05-01&date_end=2023-05-30&level=Gradua%C3%A7%C3%A3o&status=invoice_analysis" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/portal-gef/split-requests"
);
const params = {
"date_start": "2023-05-01",
"date_end": "2023-05-30",
"level": "Graduação",
"status": "invoice_analysis",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Aprovar ou reprovar solicitação de repasse no portalgef api
Example request:
curl --request PUT \
"http://localhost/api/v1/portal-gef/split-requests/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"invoice_analysis\",
\"agent_id\": 123,
\"justification\": \"Documento com inconsistências nos valores.\",
\"invoice_amount\": 1500.75,
\"add_amount\": 1500.75,
\"discount\": 1500.75
}"
const url = new URL(
"http://localhost/api/v1/portal-gef/split-requests/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "invoice_analysis",
"agent_id": 123,
"justification": "Documento com inconsistências nos valores.",
"invoice_amount": 1500.75,
"add_amount": 1500.75,
"discount": 1500.75
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
Example response (400, Solicitação de repasse inexistente!):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Undocumented function
Example request:
curl --request GET \
--get "http://localhost/api/v1/portal-gef/split-partners" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/portal-gef/split-partners"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Lista dados e matriculas do aluno
Example request:
curl --request GET \
--get "http://localhost/api/v1/students/architecto/enrollments" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/students/architecto/enrollments"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"student": {
"name": "Kassio Bitcoin",
"sga_student_id": 173103,
"email": "kassiobitcoin@gmail.com",
"created_at": "2026-03-24 08:51:14",
"is_active": true
},
"courses": [
{
"course_id": 2142,
"course_name": "ENGENHARIA DE SOFTWARE",
"workload": 720,
"status": "pending",
"expires_at": "2027-04-01 12:32:25",
"login": null
},
{
"course_id": 4838,
"course_name": "NEGOCIAÇÃO EMPRESARIAL - CAPACITAÇÃO - 320 HORAS",
"workload": 320,
"status": "pending",
"expires_at": "2027-04-01 12:32:25",
"login": {
"created_at": "2026-04-01 11:36:15",
"updated_at": "2026-04-01 11:40:55"
}
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
data
object
student
object
Dados pessoais do aluno.
name
string
Nome completo do aluno.
sga_student_id
integer
ID do aluno no SGA.
email
string
E-mail de cadastro do aluno.
created_at
string
Data de criação do usuário.
is_active
boolean
Indica se o aluno está ativo no sistema.
courses
object[]
Lista de cursos/matrículas vinculados ao aluno.
course_id
integer
ID interno do curso.
course_name
string
Nome do curso.
workload
integer
Carga horária total da matriz curricular.
status
string
Status atual da matrícula (ex: pending, active).
expires_at
string
Data limite para conclusão do curso.
login
object|null
Histórico de acessos. Será null se nunca acessou.
created_at
string
Data do primeiro login.
updated_at
string
Data do último login.
Remover uma questão e suas opções
Example request:
curl --request DELETE \
"http://localhost/api/v1/questions/2" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/questions/2"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Sucesso):
Empty response
Example response (404, Recurso não encontrado):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Matriz
GET api/v1/curriculum
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/curriculum?name=Enfermagem+01%2F2026&order=asc&sort_by=term&page=1&per_page=15&has_content=&status=in_progress" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/curriculum"
);
const params = {
"name": "Enfermagem 01/2026",
"order": "asc",
"sort_by": "term",
"page": "1",
"per_page": "15",
"has_content": "0",
"status": "in_progress",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 5932,
"uuid": "019d2a7f-24a8-733c-ba6f-b5e3593b164b",
"name": "COMUNICAÇÃO, CULTURA ORGANIZACIONAL E TECNOLOGIA - 720 HORAS - STCC",
"source": "UNIFAVENI",
"status": "not_started",
"progress": {
"total_disciplines": 5,
"completed_disciplines": 0
},
"created_at": "2026-03-26T17:14:28.000000Z",
"updated_at": "2026-03-26T17:14:28.000000Z"
}
],
"meta": {
"current_page": 1,
"last_page": 10,
"per_page": 15,
"total": 150
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/curriculum/{id}
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/curriculum/123" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/curriculum/123"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/curriculum/{id}/disciplines
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/curriculum/architecto/disciplines" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"architecto\",
\"order\": \"architecto\",
\"sort_by\": \"updated_at\",
\"page\": 16,
\"per_page\": 16,
\"has_content\": false
}"
const url = new URL(
"http://localhost/api/v1/curriculum/architecto/disciplines"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "architecto",
"order": "architecto",
"sort_by": "updated_at",
"page": 16,
"per_page": 16,
"has_content": false
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 77625,
"name": "TÓPICOS AVANÇADOS EM APLICAÇÕES WEB",
"source": "UNIFAVENI",
"has_content": false
},
],
"meta": { "current_page":1, "last_page":10, "per_page":15, "total":150 }
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/curriculum/{discipline_id}/{id}
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/curriculum/123/123" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/curriculum/123/123"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Quiz
Rota para exibir detalhes de uma avaliação
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/quizzes/16" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/quizzes/16"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Sucesso):
{
"id": 21,
"name": "Teste Questões de Matemática",
"time": 60,
"max_attempts": 3,
"instructions": "Leia atentamente antes de responder. Boa sorte!",
"created_at": "2026-02-10T20:48:24.000000Z",
"updated_at": "2026-02-10T20:48:24.000000Z",
"questions": [
{
"id": 3,
"uuid": "019c4950-06e0-73c1-bd64-ccd4984a1c3a",
"statement": "Quanto é 2 + 2?",
"type": "multiple_choice",
"points": 10,
"options": [
{
"id": 8,
"content": "3",
"is_correct": false
},
{
"id": 9,
"content": "4",
"is_correct": true
}
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para listar avaliações
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/quizzes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxntl\"
}"
const url = new URL(
"http://localhost/api/v1/quizzes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxntl"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar uma avaliação
requires authentication
Example request:
curl --request PUT \
"http://localhost/api/v1/quizzes/2" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Prova de Matemática - 1º Bimestre\",
\"time_limit\": 60,
\"max_attempts\": 3,
\"instructions\": \"Não é permitido o uso de calculadora.\",
\"passing_score\": 7,
\"grading_method\": \"highest\",
\"questions\": [
{
\"id\": 3,
\"statement\": \"Quanto é 2 + 2?\",
\"type\": \"multiple_choice\",
\"points\": 10,
\"options\": [
{
\"id\": 8,
\"content\": \"3\",
\"is_correct\": false
},
{
\"content\": \"4\",
\"is_correct\": true
}
]
}
]
}"
const url = new URL(
"http://localhost/api/v1/quizzes/2"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Prova de Matemática - 1º Bimestre",
"time_limit": 60,
"max_attempts": 3,
"instructions": "Não é permitido o uso de calculadora.",
"passing_score": 7,
"grading_method": "highest",
"questions": [
{
"id": 3,
"statement": "Quanto é 2 + 2?",
"type": "multiple_choice",
"points": 10,
"options": [
{
"id": 8,
"content": "3",
"is_correct": false
},
{
"content": "4",
"is_correct": true
}
]
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (204, Sucesso):
Empty response
Example response (404, Recurso não encontrado):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para listar seções de uma avaliação
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/quizzes/2/sections" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/quizzes/2/sections"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Role
Listar todos as roles.
Retorna uma coleção simples contendo o ID e o nome de todos as roles (Cargos) cadastrados, ordenados alfabeticamente.
Example request:
curl --request GET \
--get "http://localhost/api/v1/roles" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/roles"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
[
{
"id": 1,
"name": "Admin"
},
{
"id": 2,
"name": "Diretor"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Section
Rota para listar seções
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/curriculum-disciplines/1/sections" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/curriculum-disciplines/1/sections"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para marcar a matriz-disciplina como concluida, registrando a data atual
requires authentication
Example request:
curl --request PATCH \
"http://localhost/api/v1/curriculum-disciplines/1/finish" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/curriculum-disciplines/1/finish"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para criar uma sessão
requires authentication
Example request:
curl --request POST \
"http://localhost/api/v1/sections" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"John Doe\",
\"description\": \"aaaaa\",
\"curriculum_discipline_id\": 1,
\"sort_order\": 1
}"
const url = new URL(
"http://localhost/api/v1/sections"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "John Doe",
"description": "aaaaa",
"curriculum_discipline_id": 1,
"sort_order": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para atualizar uma seção
requires authentication
Example request:
curl --request PATCH \
"http://localhost/api/v1/sections/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"John Doe\",
\"description\": \"aaaaa\"
}"
const url = new URL(
"http://localhost/api/v1/sections/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "John Doe",
"description": "aaaaa"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para ver uma seção
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/sections/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/sections/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para excluir uma seção
requires authentication
Example request:
curl --request DELETE \
"http://localhost/api/v1/sections/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/sections/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para reordenar os recursos de uma seção
requires authentication
Example request:
curl --request PATCH \
"http://localhost/api/v1/sections/1/order" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição)." \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"items\": [
{
\"sort_order\": 1,
\"contentable_id\": 27,
\"type\": \"document\"
}
]
}"
const url = new URL(
"http://localhost/api/v1/sections/1/order"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "faveni Identificador do Tenant/Domínio (Obrigatório para definir o contexto da requisição).",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"items": [
{
"sort_order": 1,
"contentable_id": 27,
"type": "document"
}
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (204):
Empty response
Example response (422):
:{"message":"Existem itens duplicados na lista"}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Section Curriculum Discipline
Rota para reordenar as seções
requires authentication
Example request:
curl --request PATCH \
"http://localhost/api/v1/section-curriculum-disciplines/123/sections/order" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"items\": [
{
\"sort_order\": 16,
\"section_id\": 16
}
]
}"
const url = new URL(
"http://localhost/api/v1/section-curriculum-disciplines/123/sections/order"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"items": [
{
"sort_order": 16,
"section_id": 16
}
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (204):
Empty response
Example response (422):
{
"errors": "campo invalido"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Section Document
Anexar Documento à Seção * Realiza o upload de um arquivo e cria o vínculo com a seção especificada.
requires authentication
O arquivo é enviado para o S3 e os metadados salvos no banco.
Example request:
curl --request POST \
"http://localhost/api/v1/sections/architecto/documents" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "name=Material complementar aula de Cálculo 1.doc"\
--form "sort_order=5"\
--form "description=Material que complementa a aula de Cálculo 1"\
--form "file=@/tmp/phpp90gib1oed57a6Qgl7I" const url = new URL(
"http://localhost/api/v1/sections/architecto/documents"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('name', 'Material complementar aula de Cálculo 1.doc');
body.append('sort_order', '5');
body.append('description', 'Material que complementa a aula de Cálculo 1');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para excluir um documento da seção
requires authentication
Example request:
curl --request DELETE \
"http://localhost/api/v1/sections/1/documents/12" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/sections/1/documents/12"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para substituir um documento
requires authentication
Example request:
curl --request PUT \
"http://localhost/api/v1/sections/architecto/documents/16" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "name=Apostila de Matemática V2"\
--form "_method=PUT"\
--form "description=Et animi quos velit et fugiat."\
--form "file=@/tmp/php3a0p09tdqjnscfUvEcx" const url = new URL(
"http://localhost/api/v1/sections/architecto/documents/16"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('name', 'Apostila de Matemática V2');
body.append('_method', 'PUT');
body.append('description', 'Et animi quos velit et fugiat.');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "PUT",
headers,
body,
}).then(response => response.json());Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Section Quiz
Rota para criar avaliação
requires authentication
Example request:
curl --request POST \
"http://localhost/api/v1/sections/16/quizzes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Avaliação de Matemática - 1º Bimestre\",
\"time_limit\": 60,
\"max_attempts\": 3,
\"instructions\": \"Leia com atenção. Não é permitido uso de calculadora.\",
\"sort_order\": 1,
\"passing_score\": 7,
\"grading_method\": \"highest\",
\"questions\": [
{
\"statement\": \"Quanto é a raiz quadrada de 144?\",
\"points\": 2,
\"options\": [
{
\"content\": \"12\",
\"is_correct\": false
}
]
}
]
}"
const url = new URL(
"http://localhost/api/v1/sections/16/quizzes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Avaliação de Matemática - 1º Bimestre",
"time_limit": 60,
"max_attempts": 3,
"instructions": "Leia com atenção. Não é permitido uso de calculadora.",
"sort_order": 1,
"passing_score": 7,
"grading_method": "highest",
"questions": [
{
"statement": "Quanto é a raiz quadrada de 144?",
"points": 2,
"options": [
{
"content": "12",
"is_correct": false
}
]
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para vincular um questionario
requires authentication
Example request:
curl --request POST \
"http://localhost/api/v1/sections/16/quizzes/attach" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"quiz_id\": 16,
\"sort_order\": 16
}"
const url = new URL(
"http://localhost/api/v1/sections/16/quizzes/attach"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"quiz_id": 16,
"sort_order": 16
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remover Quiz da Seção
requires authentication
Desvincula (ou remove) uma avaliação de uma seção específica.
Example request:
curl --request DELETE \
"http://localhost/api/v1/sections/10/quizzes/55" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: Obrigatório para identificação do contexto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/sections/10/quizzes/55"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "Obrigatório para identificação do contexto",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Sucesso. O vínculo foi removido e não há conteúdo para retornar.):
Empty response
Example response (404, Seção ou Quiz não encontrado.):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Section Video
Rota para salvar um video na seção
requires authentication
Example request:
curl --request POST \
"http://localhost/api/v1/sections/123/videos" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"sort_order\": 1,
\"name\": \"calculo 2\",
\"source\": \"spalla\",
\"url\": \"https:\\/\\/minhaplataforma.com\\/watch?v=\",
\"external_id\": \"cc14a649-46df-4e87-a9f7-81302492be8f\"
}"
const url = new URL(
"http://localhost/api/v1/sections/123/videos"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "architecto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"sort_order": 1,
"name": "calculo 2",
"source": "spalla",
"url": "https:\/\/minhaplataforma.com\/watch?v=",
"external_id": "cc14a649-46df-4e87-a9f7-81302492be8f"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para atualizar o vídeo de uma seção
requires authentication
Example request:
curl --request PUT \
"http://localhost/api/v1/sections/architecto/videos/123" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/minhaplataforma.com\\/watch?v=\",
\"name\": \"calculo 2\",
\"external_id\": \"architecto\",
\"source\": \"spalla\"
}"
const url = new URL(
"http://localhost/api/v1/sections/architecto/videos/123"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "architecto",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/minhaplataforma.com\/watch?v=",
"name": "calculo 2",
"external_id": "architecto",
"source": "spalla"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para remover um vídeo de uma seção
requires authentication
Example request:
curl --request DELETE \
"http://localhost/api/v1/sections/architecto/videos/123" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/sections/architecto/videos/123"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "architecto",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User
Lista usuários paginados.
requires authentication
Rota: GET /v1/users Descrição: Lista usuários paginados com filtros (status) e ordena mediante ao nome da coluna.
Example request:
curl --request GET \
--get "http://localhost/api/v1/users?status=approved&order_by=name&direction=asc&page=1&limit=10&search=Jo%C3%A3o" \
--header "Authorization: string required" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/users"
);
const params = {
"status": "approved",
"order_by": "name",
"direction": "asc",
"page": "1",
"limit": "10",
"search": "João",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "string required",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{ "uuid":"...", "name":"...", "email":"...", "role":"admin", "department":"Tecnologia", "status":"active" }
],string
"meta": { "current_page":1, "last_page":10, "per_page":15, "total":150 }
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Obter perfil do usuário autenticado.
requires authentication
Este endpoint retorna os detalhes do usuário logado, incluindo o cargo (role) único e o nome do departamento vinculado ao seu registro de funcionário.
Example request:
curl --request GET \
--get "http://localhost/api/v1/me" \
--header "Authorization: string required Exemplo: \"Bearer {token}\"" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/me"
);
const headers = {
"Authorization": "string required Exemplo: "Bearer {token}"",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"uuid": "9b12e345-e89b-12d3-a456-426614174000",
"name": "João Silva",
"email": "joao.silva@empresa.com.br",
"avatar_url": "lh3.googleusercontent.com...",
"role": {
"id": 2,
"name": "gerente"
},
"department": {
"id": 2,
"name": "Marketing"
},
"status": "active",
"created_at": "2025-12-19T16:10:00Z",
"updated_at": "2025-12-19T16:10:00Z"
}
Example response (401):
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar perfil do usuário autenticado.
requires authentication
Este endpoint permite que o usuário logado atualize suas informações pessoais. A operação é realizada de forma atômica (transação).
Example request:
curl --request PUT \
"http://localhost/api/v1/me" \
--header "Authorization: string required Exemplo: \"Bearer {token}\"" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"João Silva\",
\"role_id\": 1,
\"department_id\": 2,
\"email\": \"joao.silva@empresa.com\"
}"
const url = new URL(
"http://localhost/api/v1/me"
);
const headers = {
"Authorization": "string required Exemplo: "Bearer {token}"",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "João Silva",
"role_id": 1,
"department_id": 2,
"email": "joao.silva@empresa.com"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"uuid": "9b12e345-e89b-12d3-a456-426614174000",
"name": "João Silva",
"email": "joao.silva@empresa.com",
"avatar_url": "lh3.googleusercontent.com...",
"role_id": 1,
"department": "Tecnologia",
"status": "active",
"created_at": "2025-12-19T16:15:00Z",
"updated_at": "2025-12-19T16:20:00Z"
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"department_id": [
"O departamento selecionado é inválido."
],
"role": [
"O cargo selecionado é inválido."
]
}
}
Example response (500):
{
"message": "Erro interno ao atualizar perfil."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Buscar alunos
requires authentication
Rota para retornar usuários que são alunos
Example request:
curl --request GET \
--get "http://localhost/api/v1/users/students?order_by=name&direction=asc&page=1&limit=15&search=Kassio" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/users/students"
);
const params = {
"order_by": "name",
"direction": "asc",
"page": "1",
"limit": "15",
"search": "Kassio",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Obter perfil de determinado usuário.
requires authentication
Este endpoint permite que o adminstrador consiga as informações de um determinado usuário
Example request:
curl --request GET \
--get "http://localhost/api/v1/users/1" \
--header "Authorization: string required Exemplo: \"Bearer {token}\"" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost/api/v1/users/1"
);
const headers = {
"Authorization": "string required Exemplo: "Bearer {token}"",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"uuid": "d8933aba-2cb7-44d2-925b-7337226b4934",
"name": "Juliana Paes",
"email": "juliana.paes@empresa.com",
"avatar_url": null,
"role": {
"id": 2,
"name": "gerente"
},
"department": {
"id": 2,
"name": "Marketing"
},
"status": "pending",
"is_active": false,
"email_verified_at": "2025-12-31T08:43:10.000000Z",
"created_at": "2025-12-31T08:43:10.000000Z",
"updated_at": "2025-12-31T08:43:10.000000Z"
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (404):
{
"message": "Usuário não encontrado."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar perfil de determinado usuário.
requires authentication
Este endpoint permite que o adminstrador atualize as informações de um usuário.
Example request:
curl --request PUT \
"http://localhost/api/v1/users/1" \
--header "Authorization: string required Exemplo: \"Bearer {token}\"" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"João Silva\",
\"role_id\": 1,
\"department_id\": 2,
\"is_active\": true,
\"email\": \"joao.silva@empresa.com\"
}"
const url = new URL(
"http://localhost/api/v1/users/1"
);
const headers = {
"Authorization": "string required Exemplo: "Bearer {token}"",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "João Silva",
"role_id": 1,
"department_id": 2,
"is_active": true,
"email": "joao.silva@empresa.com"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
'message': 'Usuário atualizado com sucesso.',
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"department_id": [
"O departamento selecionado é inválido."
],
"role": [
"O cargo selecionado é inválido."
]
}
}
Example response (500):
{
"message": "Erro interno ao atualizar usuário."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Moderação de usuário (aprovar/rejeitar).
requires authentication
Este endpoit permite que um administrador aprove ou rejeite um usuário pendente. caso aprovado o campo 'approved_by' será preenchido com o id do administrador que realizou a ação. caso rejeitado o usuário será excluído.
Example request:
curl --request PATCH \
"http://localhost/api/v1/users/1/moderation" \
--header "Authorization: string required" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"architecto\"
}"
const url = new URL(
"http://localhost/api/v1/users/1/moderation"
);
const headers = {
"Authorization": "string required",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "architecto"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
'message' => 'Moderação realizada com sucesso.',
}
Example response (422):
{
"message": "Este usuário já foi processado e não está mais pendente."
}
Example response (500):
{
'message' => 'Erro interno ao processar a moderação do usuário.',
'error' => 'Detalhes do erro',
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Video
Rota para listar Vídeos
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/videos?source=spalla&page=1&limit=15&title=Aula+Introdut%C3%B3ria&description=Eius+et+animi+quos+velit+et.&tags=educacao%2Cvideo&created_at=2023-10-01&sort=-created_at&directory_id=folder_123" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: para identificação da instância" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"page\": 16,
\"limit\": 16,
\"created_at\": \"architecto\",
\"sort\": \"architecto\",
\"tags\": \"architecto\",
\"title\": \"architecto\",
\"description\": \"Eius et animi quos velit et.\",
\"directory_id\": \"architecto\",
\"source\": \"spalla\"
}"
const url = new URL(
"http://localhost/api/v1/videos"
);
const params = {
"source": "spalla",
"page": "1",
"limit": "15",
"title": "Aula Introdutória",
"description": "Eius et animi quos velit et.",
"tags": "educacao,video",
"created_at": "2023-10-01",
"sort": "-created_at",
"directory_id": "folder_123",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "para identificação da instância",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"page": 16,
"limit": 16,
"created_at": "architecto",
"sort": "architecto",
"tags": "architecto",
"title": "architecto",
"description": "Eius et animi quos velit et.",
"directory_id": "architecto",
"source": "spalla"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rota para exibir um único vídeo
requires authentication
Example request:
curl --request GET \
--get "http://localhost/api/v1/videos/2323423423?source=spalla" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Domain-Name: para identificação da instância" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"source\": \"spalla\"
}"
const url = new URL(
"http://localhost/api/v1/videos/2323423423"
);
const params = {
"source": "spalla",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Domain-Name": "para identificação da instância",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"source": "spalla"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.