Apresentação
A API do IM Labs permite acesso programático para:
- Registro de novos alunos;
- Atualização de dados de aluno existente;
- Matrículas;
- Notificações de usuários;
JSON RESTful API
Exemplo de uma resposta com sucesso:
{
"status": 200,
"message": "",
"data": {
"attribute1": "value",
"attribute2": "value"
}
}
Exemplo de uma resposta com erro:
{
"status": 400,
"message": "Example error message.",
}
A API IM Labs é do tipo RESTful, utilizando URL e verbos HTTP correspondentes para cada operação (GET para obter, POST para criar e PUT para alterar e DELETE para remover).
O formato de dados padrão na solictação e resposta é o JSON.
A resposta a uma requisição sempre conterá o atributo "status". O valor 200 indica que a solicitação teve sucesso.
Busca e Paginação
200 OK - Múltiplos itens
{
"data": [
{"id": 1},
{"id": 2}
],
"pagination": {
"page": 1,
"page_size": 100,
"page_count": 1
}
}
Algumas chamadas retornam dados na forma de listas. Os atributos abaixo permitem a busca e paginação de dados.
Quando os dados retornados estiverem na forma de lista,
- O atributo "data" conterá um array com registros do tipo solicitado;
- O atributo "pagination" trará informações sobre a paginação da lista, como: página atual, tamanho de cada página e quantidade de páginas.
Parâmetros de URL para Busca e Paginação
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| sort | String | Não | Attributo para ordenação dos resultados. Ex.: sort=name, sort=-date. |
Teste e Produção
Durante a fase de desenvolvimento, utilize o ambiente de destes, através da URL base https://staging.api.imlabs.com.br/api/v1.
Quando sua aplicação estiver finalizada, utilize a URL base de produção: https://api.imlabs.com.br/api/v1.
Autenticação e Autorização
A autorização de acesso é feita pelo envio do header X-Access-Token.
A autorização estará limitada ao escopo solicitado na criação do token de acesso.
Autorização via Token de Acesso (X-Access-Token)
Access token via credenciais de client
curl "https://staging.auth.institutomix.com.br/v1/token" \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"client_id": "{client_id}",
"client_secret": "{client_secret}",
"grant_type": "client_credentials",
"scope": "user.create"
}'
200 OK
{
"access_token": "eyJ0eXAiOiJKV1QiLCJ(...)",
"expires_in": 259200,
"token_type": "bearer",
"scope": "user.create",
"refresh_token": "<refresh_token>"
}
Access token via credenciais de aluno
curl "https://staging.auth.institutomix.com.br/v1/token" \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"client_id": "{client_id}",
"client_secret": "{client_secret}",
"username": "{platform_code}:BRA:{cpf}",
"password": "{password}",
"grant_type": "password",
"scope": "user.create lms"
}'
200 OK
{
"access_token": "eyJ0eXAiOiJKV1QiLCJ(...)",
"expires_in": 259200,
"token_type": "bearer",
"scope": "user.create",
"refresh_token": "<refresh_token>"
}
401 Unauthorized
{
"status": 401,
"data":[],
"message": "Your request was made with invalid credentials.",
"errors": []
}
O access token é uma chave temporária obtida via autenticação. O envio do access token deve ser feito por meio do header X-Access-Token.
Requisição HTTP para Obter um Access Token
POST https://staging.auth.institutomix.com.br/v1/token
Parâmetros para Autenticação via Credenciais de Client
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| client_id | String | Sim | ID do cliente de autenticação. |
| client_secret | String | Sim | Chave de acesso do cliente de autenticação. |
| grant_type | String | Sim | Tipo autorização (client_credentials). |
Parâmetros para Autenticação com Usuário e Senha
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| client_id | String | Sim | ID do cliente de autenticação. |
| client_secret | String | Sim | Chave de acesso do cliente de autenticação. |
| username | String | Sim | Identificação do usuário no formato PLATFORM_CODE:COUNTRY_CODE:CPF. Ex.: "PLAT_CODE:BRA:99999999999". |
| password | String | Sim | Senha do usuário. |
| grant_type | String | Sim | Tipo de autorização (password). |
| scope | String | Sim | Escopos de acesso separados por espaço. Ex.: user.create lms. |
Escopos de Acesso
Múltiplos escopos de acesso podem ser solicitados separados por espaço.
| Escopo | Descrição |
|---|---|
| user.create | Permite criar usuário tipo aluno. |
| user.update | Permite atualizar usuário tipo aluno. |
| user.enroll | Permite inscrever aluno em curso. |
| user.enrol_reset | Permite reset de progresso de aluno. |
| lms | Permite acessos LMS (progresso em curso). |
Erros
É importante considerar a possibilidade do IM Labs API não conseguir atender ao request. É seguro considerar que qualquer resposta com status diferente de 20x (200, 201...) contenha um erro.
Quando a requisição não for bem sucedida, uma reposta JSON será retornada, da seguinte forma:
{
"status": 400,
"message": "Mensagem de erro.",
"data": null
}
Códigos de Erro
Os códigos de erro são retornados no atributo status.
| Código | Tipo |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
| 503 | Service Unavailable |
Usuários
Obter
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/{id}" \
--request GET \
--header "X-Access-Token: {X-Access-Token}"
200 OK
{
"status": 200,
"data": {
"id": "1",
"erp_user_id": "000000",
"platform_name": "EADIM",
"document": "00000000000",
"username": "XYZ4439",
"phone_number": "",
"name": "João da Silva",
"country_code": "BRA",
"address_line_1": null,
"address_line_2": null,
"neighborhood": null,
"city_name": null,
"state_code": null,
"postal_code": null,
"email": "[email protected]",
"created_at": "2018-05-31 02:25:53",
"is_news_letter_enabled": false,
"is_app_notification_enabled": false,
"is_whatsapp_messaging_enabled": false,
"is_active": true,
"survey_url": "https://eadim.staging.loja.imlabs.com.br/pesquisa/1?access-token=..."
}
}
Este endpoint permite obter os dados de uma conta de usuário.
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/users/{id}
GET https://staging.api.imlabs.com.br/api/v1/users/self
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| {id} | Sim | ID do usuário. O ID "self" pode ser usado para obter dados da conta autenticada. |
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Criar
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/create" \
--request POST \
--header 'Content-Type: application/json' \
--header 'X-Access-Token: {X-Access-Token}' \
--data '{
"name": "João da Silva",
"document": "00000000000",
"erp_user_id": "1234",
"email": "[email protected]",
"username": "username123",
"password": "610X843a34423aa40#2",
"country_code": "BRA",
"state_code": "SP",
"city_name": "São Paulo"
}'
200 OK
{
"status": 200,
"data": {
"id": "711907",
"erp_user_id": "1234",
"document": "00000000000",
"username": "username123",
"name": "João da Silva",
"country_code": "BRA",
"email": "[email protected]",
"is_active": true,
"created_at": "2021-08-20 19:26:03",
"updated_at": "2021-08-20 19:26:03",
"phone_number": "",
"state_code": "",
"city_name": null,
"franchisee_id": null,
"campaign_id": null,
"is_news_letter_enabled": false,
"address_line_1": null,
"neighborhood": null,
"postal_code": "",
"old_birthdate": null,
"education_level": null,
"id_number": "",
"is_public_school_egress": null,
"is_app_notification_enabled": false,
"is_whatsapp_messaging_enabled": false,
"birthdate": null,
"address_line_2": null,
"survey_url": "https://eadim.staging.loja.imlabs.com.br/pesquisa/1?access-token=...",
"is_lxp_user" : false,
"is_aprovation_user" : false
}
}
Este endpoint permite criar uma conta de aluno.
Escopo de permissionamento requerido: user.create.
Requisição HTTP
POST https://staging.api.imlabs.com.br/api/v1/users/create
Parâmetros de Header
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Access-Token | String | Sim | Token de acesso obtido via autenticação. |
Parâmetros de Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | String | Sim | Nome completo do usuário. |
| document | String | Sim | CPF (somente dígitos). |
| erp_user_id | String | Não | ID de referência. Requer admin no escopo de acesso. |
| username | String | Não | Nome de usuário. Caso não informado, será preenchido com o atributo document. |
| String | Sim | Email do usuário. | |
| password | String | Sim | Senha, com mínimo de 6 caracteres, entre números e letras. |
| address_line_1 | String | Não | Endereço, com rua e número da casa. |
| address_line_2 | String | Não | Complemento do endereço. |
| neighborhood | String | Não | Bairro |
| city_name | String | Sim | Nome da cidade. Ex.: São Paulo. |
| postal_code | String | Não | Código postal (somente dígitos). |
| state_code | String | Sim | Código do estado com 2 letras. Ex.: SP. |
| country_code | String | Sim | Código do país com 3 letras (ISO 3166). Ex.: BRA. |
| phone_number | String | Não | Número do telefone com DDD (somente dígitos). |
| franchisee_id | Integer | Não | ID da unidade de franquia. |
| campaign_id | String | Não | Identificação da campanha. |
| is_news_letter_enabled | Boolean | Não | Habilita/desablita mensagens promocionais. Padrão: false. |
| is_app_notification_enabled | Boolean | Não | Habilita/desablita envio de notificações via app. Padrão: false. |
| is_whatsapp_messaging_enabled | Boolean | Não | Habilita/desablita contato via Whatsapp. Padrão: false. |
| is_lxp_user | Boolean | Não | Indica se é usuario LXP. Padrão: false. |
| is_postgrad_user | Boolean | Não | Indica se é usuario de pós-graduação. Padrão: false. |
| is_aprovat_user | Boolean | Não | Indica se é usuario Aprovat. Padrão: false. |
| is_new_aprovat_user | Boolean | Não | Indica se é um usuário Aprovat no novo sistema. Padrão: false. |
| is_eja_user | Boolean | Não | Indica se é usuario Eja. Padrão: false. |
| is_im_tech_user | Boolean | Não | Indica se é usuario IM Tech. Padrão: false. |
| lxp_sso_token | String | Não | Token de acesso obtido via autenticação SSO do LXP. |
Atualizar pelo ID
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/{user_id}/update" \
--request "PUT" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"email": "newemail@domain"
}'
200 OK
{
"status": 200,
"data": {
"id": "1",
"erp_user_id": "632517",
"document": "00000340022",
"username": "XYZ4439",
"name": "João da Silva",
"country_code": "BRA",
"email": "[email protected]",
"is_active": true,
"created_at": "2018-05-31 02:25:53",
"updated_at": "2021-08-20 18:21:40",
"phone_number": "",
"state_code": null,
"city_name": null,
"franchisee_id": 327,
"campaign_id": null,
"is_news_letter_enabled": false,
"address_line_1": null,
"neighborhood": null,
"postal_code": null,
"old_birthdate": "0",
"education_level": null,
"id_number": "",
"is_public_school_egress": 0,
"is_app_notification_enabled": false,
"is_whatsapp_messaging_enabled": false,
"birthdate": "1969-12-31",
"address_line_2": null,
"survey_url": "https://eadim.staging.loja.express/pesquisa/1?access-token=..."
}
}
400 Bad Request
{
"status": 400,
"data": [],
"message": "The attribute \"name\" cannot be updated.",
"errors": []
}
Este endpoint atualiza dados de um usuário.
Requisição HTTP
PUT https://staging.api.imlabs.com.br/api/v1/users/{user_id}/update
PUT https://staging.api.imlabs.com.br/api/v1/users/self/update
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID do usuário. O ID "self" pode ser usado para atualizar a conta autenticada. |
Parâmetros do Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| erp_user_id | String | Não | ID de referência no ERP. Requer acesso admin. |
| name | String | Não | Nome do aluno. |
| String | Não | ||
| username | String | Não | Nome de usuário. |
| phone_number | String | Não | Número do telefone. |
| city_name | String | Não | Cidade |
| address_line_1 | String | Não | Endereço |
| address_line_2 | String | Não | Complemento |
| neighborhood | String | Não | Bairro |
| postal_code | String | Não | CEP |
| state_code | String | Não | Estado (duas letras). |
| country_code | String | Não | País (Padrão = BRA). |
| birthdate | String | Não | Data de nascimento. |
| is_news_letter_enabled | String | Não | Habilitar mensagens promocionais por email. |
| is_app_notification_enabled | String | Não | Habilitar mensagens por notificação de aplicativo móvel. |
| is_whatsapp_messaging_enabled | String | Não | Habilitar mensagens por Whatsapp. |
Atualizar pelo ID no ERP
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/erp/{erp_user_id}/update" \
--request "PUT" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"email": "newemail@domain"
}'
200 OK
{
"status": 200,
"data": {
"id": "1",
"erp_user_id": "632517",
"document": "00000340022",
"username": "XYZ4439",
"name": "João da Silva",
"country_code": "BRA",
"email": "[email protected]",
"is_active": true,
"created_at": "2018-05-31 02:25:53",
"updated_at": "2021-08-20 18:21:40",
"phone_number": "",
"state_code": null,
"city_name": null,
"franchisee_id": 327,
"campaign_id": null,
"is_news_letter_enabled": false,
"address_line_1": null,
"neighborhood": null,
"postal_code": null,
"old_birthdate": "0",
"education_level": null,
"id_number": "",
"is_public_school_egress": 0,
"is_app_notification_enabled": false,
"is_whatsapp_messaging_enabled": false,
"birthdate": "1969-12-31",
"address_line_2": null,
"survey_url": "https://eadim.staging.loja.express/pesquisa/1?access-token=..."
}
}
Este endpoint atualiza dados de um usuário pelo ID no ERP.
Escopo requerido: admin.
Requisição HTTP
PUT https://staging.api.imlabs.com.br/api/v1/users/erp/{erp_user_id}/update
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| erp_user_id | Sim | ID do usuário no ERP. |
Parâmetros do Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | String | Não | Nome do aluno. |
| String | Não | ||
| username | String | Não | Nome de usuário. |
| phone_number | String | Não | Número do telefone. |
| city_name | String | Não | Cidade |
| address_line_1 | String | Não | Endereço |
| address_line_2 | String | Não | Complemento |
| neighborhood | String | Não | Bairro |
| postal_code | String | Não | CEP |
| state_code | String | Não | Estado (duas letras). |
| country_code | String | Não | País (Padrão = BRA). |
| birthdate | String | Não | Data de nascimento. |
| is_news_letter_enabled | String | Não | Habilitar mensagens promocionais por email. |
| is_app_notification_enabled | String | Não | Habilitar mensagens por notificação de aplicativo móvel. |
| is_whatsapp_messaging_enabled | String | Não | Habilitar mensagens por Whatsapp. |
Buscar
Request
curl "https://staging.api.imlabs.com.br/api/v1/users?search=joao+silva&active_only=1" \
--request "GET" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
200 OK
{
"status": 200,
"data": [
{
"id": "999999",
"erp_user_id": "9999999999999",
"document": "99999999999",
"username": "maria.silva",
"phone_number": null,
"name": "João da Silva",
"country_code": "BRA",
"address_line_1": null,
"address_line_2": null,
"neighborhood": null,
"city_name": null,
"state_code": null,
"postal_code": null,
"email": "[email protected]",
"id_number": null,
"birthdate": null,
"campaign_id": null,
"is_active": true,
"is_news_letter_enabled": false,
"is_app_notification_enabled": false,
"is_whatsapp_messaging_enabled": false,
"created_at": "1591132063"
}
]
}
Este endpoint permite efetuar uma busca de usuários.
Escopo de permissionamento requerido: admin
Limite máximo de itens etornados: 100
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/users?search={search}&active_only=1
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| search | Sim | Termo de busca, que pode ser: parte do nome, número do CPF ou ID no ERP. Ex.: ?search=joao+silva. |
| active_only | Não | Com active_only=0, usuários inativos também serão retornados (padrão). Com active_only=1, somente usuários ativos são retornados. |
O parâmetro search poderá ser:
- Nome ou parte inicial do nome (name);
- Número do CPF (document);
- ID no ERP (erp_user_id).
Ativar
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/{user_id}/enable" \
--request "PUT" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
200 OK
{
"status": 200
}
Este endpoint ativa a conta de um usuário.
Escopo de permissionamento requerido: admin.
Requisição HTTP
PUT https://staging.api.imlabs.com.br/api/v1/users/{user_id}/enable
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID do usuário. |
Desativar
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/{user_id}/disable" \
--request "PUT" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
200 OK
{
"status": 200
}
Este endpoint desativa a conta de um usuário.
Escopo de permissionamento requerido: admin.
Requisição HTTP
PUT https://staging.api.imlabs.com.br/api/v1/users/{user_id}/disable
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID do usuário. |
LMS
Obter Notas do Estudante
Request
curl "https://staging.api.imlabs.com.br/api/v1/lms/student/grades?limit=10&sort=-enrolled_at&search=javascript" \
--request GET \
--header "X-Access-Token: {X-Access-Token}"
200 OK
{
"status": 200,
"data": {
"pagination": {
"count": 3,
"total_count": 15,
"offset": 0,
"limit": 10
},
"stats": {
"course_count": 15,
"total_hours": 95,
"module_count": 45,
"lesson_count": 127
},
"data": [
{
"id": 1,
"name": "Curso de JavaScript Avançado",
"short_name": "JS_ADV",
"description": "Curso completo de JavaScript com foco em conceitos avançados",
"enrolled_at": "2024-01-15T10:30:00Z",
"progress": 85,
"is_completed": false,
"grade": 8.5,
"has_grades": true,
"minimum_grade": 7.0,
"is_minimum_grade_required": true,
"is_passing": true,
"certification_hours": 40,
"certificated_at": null,
"category": "Tecnologia",
"stats": {
"module_count": 12,
"lesson_count": 35,
"total_hours": 15
}
},
{
"id": 2,
"name": "Fundamentos de React",
"short_name": "REACT_FUND",
"description": "Introdução ao desenvolvimento com React",
"enrolled_at": "2024-01-10T14:20:00Z",
"progress": 100,
"is_completed": true,
"grade": 9.2,
"has_grades": true,
"minimum_grade": 7.0,
"is_minimum_grade_required": true,
"is_passing": true,
"certification_hours": 30,
"certificated_at": "2024-01-25T16:45:00Z",
"category": "Tecnologia",
"stats": {
"module_count": 8,
"lesson_count": 24,
"total_hours": 10
}
},
{
"id": 3,
"name": "Node.js para Iniciantes",
"short_name": "NODE_INIT",
"description": "Curso introdutório de Node.js",
"enrolled_at": "2024-01-05T09:15:00Z",
"progress": 60,
"is_completed": false,
"grade": 6.8,
"has_grades": true,
"minimum_grade": 7.0,
"is_minimum_grade_required": true,
"is_passing": false,
"certification_hours": 25,
"certificated_at": null,
"category": "Tecnologia",
"stats": {
"module_count": 6,
"lesson_count": 18,
"total_hours": 8
}
}
]
}
}
Este endpoint permite obter a lista de cursos em que o estudante está matriculado com suas respectivas notas e progresso. A resposta inclui estatísticas gerais sobre o total de cursos, horas, módulos e aulas, além de estatísticas individuais para cada curso. As notas são calculadas a partir da média dos objetos de aprendizagem (atividades) avaliados e completados pelo estudante.
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/lms/student/grades
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de Query
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| limit | Não | Número de resultados por página. Padrão: 20, Máximo: 100 |
| offset | Não | Posição inicial para paginação. Padrão: 0 |
| sort | Não | Campo(s) para ordenação. Valores possíveis: name, enrolled_at, grade, progress. Use - para decrescente, + para crescente. Padrão: -enrolled_at |
| search | Não | Termo para busca nos campos name e short_name. Mínimo: 3 caracteres |
| category_id | Não | Filtro por ID da categoria |
Campos de Resposta
Estatísticas Gerais (stats)
| Campo | Tipo | Descrição |
|---|---|---|
| course_count | integer | Total de cursos em que o estudante está matriculado |
| total_hours | integer | Soma total das horas estimadas de todos os cursos |
| module_count | integer | Total de módulos ativos em todos os cursos |
| lesson_count | integer | Total de aulas ativas em todos os cursos |
Dados dos Cursos (data)
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID único do curso |
| name | string | Nome completo do curso |
| short_name | string | Nome abreviado do curso |
| description | string | Descrição do curso |
| enrolled_at | string | Data e hora da matrícula (ISO 8601) |
| progress | integer | Progresso do estudante no curso (0-100) |
| is_completed | boolean | Indica se o curso foi concluído |
| grade | float | Nota média do estudante no curso (0-10), calculada a partir dos objetos de aprendizagem avaliados |
| has_grades | boolean | Indica se o curso possui atividades avaliativas com notas |
| minimum_grade | float | Nota mínima exigida para aprovação |
| is_minimum_grade_required | boolean | Indica se existe nota mínima obrigatória |
| is_passing | boolean | Indica se o estudante está aprovado (considerando nota mínima) |
| certification_hours | integer | Carga horária para certificação |
| certificated_at | string | Data e hora da certificação (ISO 8601) ou null |
| category | string | Nome da categoria do curso |
| stats | object | Estatísticas específicas do curso |
Estatísticas do Curso Individual (stats)
| Campo | Tipo | Descrição |
|---|---|---|
| module_count | integer | Total de módulos ativos no curso específico |
| lesson_count | integer | Total de aulas ativas no curso específico |
| total_hours | integer | Total de horas estimadas do curso específico (soma das durações das aulas) |
Exemplos de Ordenação
sort=name- Ordenar por nome (crescente)sort=-grade- Ordenar por nota (decrescente)sort=enrolled_at,name- Ordenar por data de matrícula, depois por nomesort=-progress,+name- Ordenar por progresso (decrescente), depois por nome (crescente)
Filtros de Busca
A busca é aplicada nos campos name e short_name do curso, requerendo no mínimo 3 caracteres.
Exemplo: search=javascript retornará cursos que contenham "javascript" no nome ou nome abreviado.
Obter Detalhes de Notas e Progresso do Curso
Request
curl "https://staging.api.imlabs.com.br/api/v1/lms/student/grades/123/details" \
--request GET \
--header "X-Access-Token: {X-Access-Token}"
200 OK
{
"status": 200,
"data": {
"id": 123,
"name": "Curso de JavaScript Avançado",
"short_name": "JS_ADV",
"description": "Curso completo de JavaScript com foco em conceitos avançados",
"enrolled_at": "2024-01-15T10:30:00Z",
"progress": 85,
"is_completed": false,
"grade": 8.5,
"has_grades": true,
"minimum_grade": 7.0,
"is_minimum_grade_required": true,
"is_passing": true,
"certification_hours": 40,
"certificated_at": null,
"category": "Tecnologia",
"modules": [
{
"id": 1,
"name": "Fundamentos Avançados",
"description": "Conceitos fundamentais avançados de JavaScript",
"order": 1,
"estimated_duration": 120,
"progress": 90,
"is_completed": false,
"grade": 8.2,
"has_grades": true,
"lessons": [
{
"id": 1,
"name": "Closures e Scope",
"description": "Entendendo closures e escopo em JavaScript",
"order": 1,
"estimated_duration": 60,
"progress": 100,
"is_completed": true,
"grade": 8.5,
"has_grades": true,
"learning_objects": [
{
"id": 1,
"name": "Video Aula: Closures",
"type": "video",
"order": 1,
"status": "completed",
"progress": 100,
"progress_measure": 100.00,
"grade": null,
"has_grade": false,
"is_completed": true,
"started_at": "2024-01-15T11:00:00Z",
"completed_at": "2024-01-15T11:45:00Z"
},
{
"id": 2,
"name": "Quiz: Closures",
"type": "quiz",
"order": 2,
"status": "passed",
"progress": 100,
"progress_measure": 100.00,
"grade": 8.5,
"has_grade": true,
"is_completed": true,
"started_at": "2024-01-15T11:50:00Z",
"completed_at": "2024-01-15T12:05:00Z"
}
]
},
{
"id": 2,
"name": "Promises e Async/Await",
"description": "Programação assíncrona em JavaScript",
"order": 2,
"estimated_duration": 60,
"progress": 80,
"is_completed": false,
"grade": 7.8,
"has_grades": true,
"learning_objects": [
{
"id": 3,
"name": "Video Aula: Promises",
"type": "video",
"order": 1,
"status": "completed",
"progress": 100,
"progress_measure": 100.00,
"grade": null,
"has_grade": false,
"is_completed": true,
"started_at": "2024-01-16T09:00:00Z",
"completed_at": "2024-01-16T09:50:00Z"
},
{
"id": 4,
"name": "Exercício: Async/Await",
"type": "exercise",
"order": 2,
"status": "incomplete",
"progress": 60,
"progress_measure": 60.00,
"grade": 7.8,
"has_grade": true,
"is_completed": false,
"started_at": "2024-01-16T10:00:00Z",
"completed_at": null
}
]
}
]
}
]
}
}
Este endpoint permite obter informações detalhadas sobre notas e progresso de um curso específico em que o estudante está matriculado, incluindo dados granulares por módulo, aula e objeto de aprendizagem.
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/lms/student/grades/{course_id}/details
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| course_id | integer | Sim | ID único do curso |
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Campos de Resposta
Dados do Curso (raiz)
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID único do curso |
| name | string | Nome completo do curso |
| short_name | string | Nome abreviado do curso |
| description | string | Descrição do curso |
| enrolled_at | string | Data e hora da matrícula (ISO 8601) |
| progress | integer | Progresso do estudante no curso (0-100) |
| is_completed | boolean | Indica se o curso foi concluído |
| grade | float | Nota média do estudante no curso (0-10) |
| has_grades | boolean | Indica se o curso possui atividades avaliativas |
| minimum_grade | float | Nota mínima exigida para aprovação |
| is_minimum_grade_required | boolean | Indica se existe nota mínima obrigatória |
| is_passing | boolean | Indica se o estudante está aprovado (considerando nota mínima) |
| certification_hours | integer | Carga horária para certificação |
| certificated_at | string | Data e hora da certificação (ISO 8601) ou null |
| category | string | Nome da categoria do curso |
| modules | array | Lista de módulos do curso |
Dados dos Módulos (modules)
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID único do módulo |
| name | string | Nome do módulo |
| description | string | Descrição do módulo |
| order | integer | Ordem do módulo no curso |
| estimated_duration | integer | Duração estimada em minutos |
| progress | integer | Progresso do estudante no módulo (0-100) |
| is_completed | boolean | Indica se o módulo foi concluído |
| grade | float | Nota média do estudante no módulo (0-10) |
| has_grades | boolean | Indica se o módulo possui atividades avaliativas |
| lessons | array | Lista de aulas do módulo |
Dados das Aulas (lessons)
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID único da aula |
| name | string | Nome da aula |
| description | string | Descrição da aula |
| order | integer | Ordem da aula no módulo |
| estimated_duration | integer | Duração estimada em minutos |
| progress | integer | Progresso do estudante na aula (0-100) |
| is_completed | boolean | Indica se a aula foi concluída |
| grade | float | Nota média do estudante na aula (0-10) |
| has_grades | boolean | Indica se a aula possui atividades avaliativas |
| learning_objects | array | Lista de objetos de aprendizagem da aula |
Dados dos Objetos de Aprendizagem (learning_objects)
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID único do objeto de aprendizagem |
| name | string | Nome do objeto de aprendizagem |
| type | string | Tipo do objeto (video, quiz, exercise, document, etc.) |
| order | integer | Ordem do objeto na aula |
| status | string | Status do objeto (not_attempted, incomplete, browsed, completed, passed, failed) |
| progress | integer | Progresso no objeto (0-100) |
| progress_measure | float | Medida de progresso detalhada (0-100.00) |
| grade | float | Nota obtida no objeto (0-10) ou null se não avaliativo |
| has_grade | boolean | Indica se o objeto possui nota |
| is_completed | boolean | Indica se o objeto foi concluído |
| started_at | string | Data e hora de início (ISO 8601) ou null |
| completed_at | string | Data e hora de conclusão (ISO 8601) ou null |
Status dos Objetos de Aprendizagem
| Status | Descrição |
|---|---|
| not_attempted | Não foi iniciado pelo estudante |
| incomplete | Iniciado mas não concluído |
| browsed | Visualizado/navegado pelo estudante |
| completed | Concluído com sucesso |
| passed | Aprovado (em objetos avaliativos) |
| failed | Reprovado (em objetos avaliativos) |
Códigos de Erro
| Código | Descrição |
|---|---|
| 404 | Curso não encontrado ou estudante não está matriculado |
| 401 | Token de acesso inválido ou expirado |
| 403 | Acesso negado |
Observações
- O progresso é calculado com base no status dos objetos de aprendizagem
- As notas são calculadas apenas para objetos que possuem avaliação
- Objetos não iniciados (
not_attempted) têm todos os campos de progresso e nota como zero/null - A hierarquia vai de Curso → Módulos → Aulas → Objetos de Aprendizagem
- Todos os objetos, módulos e aulas inativos são filtrados da resposta
Obter Valor de Configuração
Request
curl "https://staging.api.imlabs.com.br/api/v1/lms/settings/privacy_policy?b64=1" \
--request GET \
--header "X-Access-Token: {X-Access-Token}"
200 OK
{
"status": 200,
"data": {
"resource": "setting",
"type": "privacy_policy",
"value": "PGgxPlBvbMOtdGljYSBkZSBQcml2YWNpZGFkZSBFQURJTTwvaDE(...)"
}
}
Este endpoint permite obter o valor de uma configuração.
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/lms/settings/{code}?b64={b64}
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| code | Sim | Código da configuração a ser retornada. |
| b64 | Não | b64=1 retorna o valor encodado em base 64. b64=0 retorna texto normal. Padrão: b64=0. |
Valores possíveis para o parâmetro code
- contact_email
- contact_phone
- whatsapp_phone
- show_whatsapp_button
- physical_address
- youtube
- privacy_policy
- terms_of_use
- cookies_policy
- play_store
- app_store
- about_us
- ga_tracking_id
- gads_tracking_id
- facebook_pixel_tracking_id
- gtag_manager_id
- metatag_data
- android_notification_api_key
- external_blog_link
- external_policies_link
- pre_enrollment_limit
- is_support_material_download_enabled
- is_admin_enrollment_enabled
- coupon_discount_limit
Cursos
Buscar
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/courses?q=gpp&modalityType=Hybrid" \
--request "GET" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
200 OK
{
"status": 200,
"data": [
{
"id": "15",
"name": "Gestão pessoal e profissional ",
"short_name": "GPP",
"description": null,
"is_active": "0",
"is_appending_enabled": "0",
"is_certification_enabled": "0",
"platform_id": "1"
},
{
"id": "7",
"name": "Teste GPP",
"short_name": "Teste GPP",
"description": null,
"is_active": "0",
"is_appending_enabled": "0",
"is_certification_enabled": "0",
"platform_id": "1"
}
]
}
Este endpoint permite pesquisar entre os cursos disponíveis.
Escopo: admin
Limite de resultados: 100
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/admin/courses?q={q}&modalityType={modalityType}
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| q | Não | Termo para busca nos campos name e short_name. |
| modalityType | Não | Filtro por modalidade. Valores possíveis: Online e Hybrid. Padrão: todos. |
Módulos
Listar Módulos
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/modules?course_id={course_id}" \
--request "GET" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
200 OK
{
"status": 200,
"data": [
{
"id": "58",
"course_id": "24",
"name": "Módulo 1 - Autoconhecimento",
"description": "Aqui você terá noções de como optar pela profissão correta, conhecendo seu perfil no mercado de trabalho e seus pontos fortes e fracos.",
"color": "BD0014",
"is_active": "1",
"created_at": "1527001546",
"updated_at": "1628706557",
"display_order": "0"
},
{
"id": "60",
"course_id": "24",
"name": "Módulo 2 - Orientação profissional",
"description": "Neste módulo você receberá orientações que o auxiliarão na escolha do emprego certo. ",
"color": "BD0014",
"is_active": "1",
"created_at": "1527005053",
"updated_at": "1552397632",
"display_order": "1"
}
]
}
Este endpoint permite listar módulos de um curso.
Escopo: admin
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/admin/modules?course_id={course_id}
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| course_id | Sim | ID do curso. |
Matrículas
Obter
Request
curl "https://staging.api.imlabs.com.br/api/v1/enrollments/{user_id},{course_id}" \
--request GET \
--header "X-Access-Token: {X-Access-Token}"
200 OK
{
"status": 200,
"data": {
"id": 1,
"name": "Inglês",
"short_name": "ENG",
"description": null,
"is_available_upon_schedule": false,
"available_dayofweek": null,
"schedule_start_at": null,
"schedule_end_at": null,
"platform_id": 1,
"original_platform_id": 1,
"is_minimum_grade_required": true,
"minimum_grade": 7,
"is_minimum_progress_required": null,
"minimum_progress": null,
"certification_hours": null,
"enrolled_at": "2020-07-30 00:00:16",
"reset_at": null,
"reset_by_user_id": null,
"progress": 0,
"is_completed": false,
"has_attachments": false,
"grade": 0,
"owner_platform_id": 1,
"viewed_at": null,
"modules": [],
"is_graduable": false,
"pointer": {
"module_id": null,
"module_index": null,
"lesson_id": null,
"lesson_index": null,
"learning_object_id": null,
"learning_object_index": null
},
"is_certifiable": false,
"estimated_duration": 0,
"is_inside_scheduled_hours": true,
"user": {
"id": 1,
"erp_user_id": 632517,
"name": "Rafaela Cristina da Silva Coelho",
"document": "00000340022",
"email": "[email protected]"
}
}
}
Este endpoint retorna os dados de uma matricula.
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/enrollments/{user_id},{course_id}
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID do usuário. |
| course_id | Sim | ID do curso. |
Matricular
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/{user_id}/enroll" \
--request "POST" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"course_id": [111, 222, 333]
}'
200 OK
{
"status": 200
}
Este endpoint matricula um aluno em um ou mais cursos.
Escopos: admin ou user.enroll.
Requisição HTTP
POST https://staging.api.imlabs.com.br/api/v1/users/{user_id}/enroll
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID do aluno a ser matriculado. |
Parâmetros de Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| course_id | Array | Sim | Lista dos ID's dos cursos a se efetuar matrícula. |
Zerar Matrícula
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/{user_id}/resetEnrollment" \
--request "POST" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"course_id": "123"
}'
200 OK
{
"status": 200
}
Este endpoint zera o progresso de uma matrícula.
Escopo: admin ou user.enroll_reset.
Requisição HTTP
POST https://staging.api.imlabs.com.br/api/v1/users/{user_id}/resetEnrollment
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID do aluno a ser matriculado. |
Parâmetros de Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| course_id | String | Sim | ID do curso para zerar o progresso. |
Obter Módulos do Aluno
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules" \
--request "GET" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}"
200 OK
{
"status": 200,
"data": [
{
"id": "60",
"name": "Módulo 2 - Orientação profissional",
"created_at": "1622144240"
},
{
"id": "61",
"name": "Módulo 3 - Marketing Pessoal",
"created_at": "1622144240"
},
{
"id": "62",
"name": "Módulo 4 - Currículo",
"created_at": "1622144240"
}
]
}
Este endpoint lista módulos acessíveis pelo aluno.
Escopo: admin
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| user_id | Sim | ID de usuário do aluno. |
| course_id | Sim | ID do curso. |
Acrescentar Módulos
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules" \
--request "POST" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"modules": [
{
"id": 62
}
]
}'
200 OK
{
"status": 200,
"data": {
"user_id": "1",
"course_id": "24",
"modules": [
{
"id": "60",
"name": "Módulo 2 - Orientação profissional",
"created_at": "1622221486"
},
{
"id": "61",
"name": "Módulo 3 - Marketing Pessoal",
"created_at": "1622221486"
},
{
"id": "62",
"name": "Módulo 4 - Currículo",
"created_at": "1622221486"
}
]
}
}
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules" \
--request "POST" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"modules": [
{
"id": 3
}
]
}'
400 Bad Request
{
"status": 400,
"message": "The module '3' does not exist in course '24'",
"more_info": ""
}
Este endpoint permite acrescentar módulos acessíveis para um aluno (curso híbrido). Múltiplos módulos pode ser acrescentandos na mesma requisição. O retorno conterá a lista atualizada de módulos.
Escopo: admin
Requisição HTTP
POST https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| user_id | String | Sim | ID de usuário do aluno. |
| course_id | String | Sim | ID docurso |
Parâmetros de Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| modules[] | Array | Sim | Módulos a serem acrescetados para o aluno. |
| modules[].id | Integer | Sim | ID do módulo a ser acrescentado. |
Atualizar Módulos
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules" \
--request "PUT" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"modules": [
{
"id": 60
},
{
"id": 61
},
{
"id": 62
}
]
}'
200 OK
{
"status": 200,
"data": {
"user_id": "1",
"course_id": "24",
"modules": [
{
"id": "60",
"name": "Módulo 2 - Orientação profissional",
"created_at": "1622221486"
},
{
"id": "61",
"name": "Módulo 3 - Marketing Pessoal",
"created_at": "1622221486"
},
{
"id": "62",
"name": "Módulo 4 - Currículo",
"created_at": "1622221486"
}
]
}
}
Request
curl "https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules" \
--request "PUT" \
--header 'Content-Type: application/json' \
--header "X-Access-Token: {X-Access-Token}" \
--data '{
"modules": [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
}
]
}'
400 Bad Request
{
"status": 400,
"message": "The module '1' does not exist in course '24'",
"more_info": ""
}
Este endpoint permite atualizar a lista de módulos acessíveis pelo aluno.
Escopo: admin
Requisição HTTP
PUT https://staging.api.imlabs.com.br/api/v1/admin/users/{user_id}/courses/{course_id}/modules
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| user_id | String | Sim | ID de usuário do aluno. |
| course_id | String | Sim | ID docurso |
Parâmetros de Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| modules[] | Array | Sim | Módulos a serem disponibilizados para o aluno. |
| modules[].id | Integer | Sim | ID do módulo a ser disponibilizado. |
Notificações
Criar Envio em Lote
Request
curl "https://staging.api.imlabs.com.br/api/v1/notification-batches" \
--request POST \
--header 'Content-Type: application/json' \
--header 'X-Access-Token: {X-Access-Token}' \
--data '{
"app_type": "LmsStudent",
"notifier_type": "Custom",
"recipients_filters": {
"course_id": 24,
"user_id": 1
},
"subject": "Subject",
"body": "Body"
}'
200 OK
{
"status": 200,
"data": {
"id": 79,
"app_type": "LmsStudent",
"notifier_type": "Custom",
"subject": "Subject",
"body": "Body",
"status": "New",
"created_at": "2021-11-01 22:56:18",
"updated_at": "2021-11-01 22:56:18",
"recipients_filters": {
"course_id": "24",
"user_id": "1"
},
"estimated_recipient_count": "1",
}
}
Este endpoint permite criar um lote de notificações a serem enviadas para os filtros selecionados. Por exemplo: notificar todos os alunos do curso "24 GPP - Gestão Profissional Pessoal" ou notificar individualmente os alunos "711649 - João da Silva" e "702536 - João da Silva Teste".
Escopo: admin
Requisição HTTP
POST https://staging.api.imlabs.com.br/api/v1/notification-batches
Parâmetros de Header
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Access-Token | String | Sim | Token de acesso obtido via autenticação. |
Parâmetros de Body
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| app_type | String | Sim | Tipo do app que está enviando a notificação. Valores possíveis: LmsStudent e LmsStore. |
| notifier_type | String | Sim | Tipo da notificação que está sendo enviada. Valores possíveis: Custom, DelayedCourseProgress, ByCourse, PreEnrollmentReceived, PreEnrollmentApproved, PreEnrollmentUnapproved e OrderReceived. |
| recipients_filters | Object | Sim | Objeto JSON com os atributos e valores que serão utilizados como filtros na consulta. Valores possíveis: user_id e course_id. |
| subject | String | Sim | Título da notificação que será enviada. |
| body | String | Sim | Corpo da mensagem que será enviada. |
Obter Histórico de Notificações
Request
curl "https://staging.api.imlabs.com.br/api/v1/users/self/notification-deliveries" \
--request GET \
--header 'X-Access-Token: {X-Access-Token}' \
200 OK
{
"status": 200,
"data": [
{
"subject": "Subject",
"body": "Body",
"sender_type": "MobileApp",
"status": "Sent",
"created_at": "2021-10-28 18:51:59",
"updated_at": "2021-10-28 18:51:59"
}
],
"pagination": {
"page": 1,
"page_size": 100,
"page_count": 1
}
}
Este endpoint permite obter o histórico de notificações que foram enviadas ao usuário informado.
Escopo: LMS ou Admin
Requisição HTTP
GET https://staging.api.imlabs.com.br/api/v1/users/{userId}/notification-deliveries
GET https://staging.api.imlabs.com.br/api/v1/users/self/notification-deliveries
Parâmetros de Header
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| X-Access-Token | Sim | Token de acesso obtido via autenticação. |
Parâmetros de URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| {userId} | Sim | ID do usuário (requer escopo Admin), já o ID como "self" pode ser usado para obter dados da conta autenticada (requer escopo LMS). |