Pular para o conteúdo

Usuário

Rotas da API para listar, buscar, editar e excluir alunos, consultar acessos e progresso e aplicar tags.

Nesta página

As rotas de usuário trabalham com os alunos da sua plataforma. Todas exigem o cabeçalho Authorization com uma chave de API e seguem o envelope de resposta descrito em API.

Base: https://<sua-plataforma>/api/v1

Como identificar o aluno

Onde a rota pede um identificador de aluno ({ident} no caminho ou usuario_id no corpo), você pode usar qualquer um destes:

ValorExemplo
ID do aluno na plataforma1234
E-mailmaria@email.com
CPF ou CNPJ (com ou sem pontuação)242.863.810-64 ou 24286381064

No caminho da URL, codifique caracteres especiais (por exemplo, @ vira %40).

O objeto usuário

Várias rotas devolvem o aluno neste formato:

{
  "id": 1234,
  "nome": "Maria Silva",
  "email": "maria@email.com",
  "doc": "242.863.810-64",
  "celular": "+5521999990000",
  "login_auto": "https://escola.asalahub.com/auth/login?crstk=Xy7...",
  "gratis": false,
  "criado_em": "2026-09-18T10:10:57-03:00",
  "ultimo_acesso_em": "2026-10-14T19:02:11-03:00"
}
CampoDescrição
idID do aluno
nome, email, doc, celularDados do cadastro (doc e celular podem vir null)
login_autoLink de login automático do aluno (veja Login automático)
gratistrue se o aluno se cadastrou pelo cadastro gratuito
criado_emData do cadastro
ultimo_acesso_emÚltimo login (null se nunca entrou)

Listar alunos

GET /usuario

Lista todos os alunos da plataforma, do mais antigo para o mais novo, 150 por página.

ParâmetroOndeObrigatórioDescrição
cursorqueryNãoCursor da próxima página (já vem pronto em next_page_url)
curl https://escola.asalahub.com/api/v1/usuario \
  -H "Authorization: ash_sua_chave_aqui"
{
  "success": true,
  "code": 200,
  "data": {
    "paginator": {
      "perPage": 150,
      "next_page_url": "https://escola.asalahub.com/api/v1/usuario?cursor=eyJpZCI6MTUw...",
      "prev_page_url": null
    },
    "usuario": [
      {
        "id": 1234,
        "nome": "Maria Silva",
        "email": "maria@email.com",
        "doc": null,
        "celular": null,
        "login_auto": "https://escola.asalahub.com/auth/login?crstk=Xy7...",
        "gratis": false,
        "criado_em": "2026-09-18T10:10:57-03:00",
        "ultimo_acesso_em": null
      }
    ]
  },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.15, "process": 0.03 }
}

Buscar um aluno

GET /usuario/{ident}
ParâmetroOndeObrigatórioDescrição
identcaminhoSimID, e-mail ou CPF/CNPJ do aluno
curl https://escola.asalahub.com/api/v1/usuario/maria%40email.com \
  -H "Authorization: ash_sua_chave_aqui"
{
  "success": true,
  "code": 200,
  "data": {
    "usuario": {
      "id": 1234,
      "nome": "Maria Silva",
      "email": "maria@email.com",
      "doc": "242.863.810-64",
      "celular": "+5521999990000",
      "login_auto": "https://escola.asalahub.com/auth/login?crstk=Xy7...",
      "gratis": false,
      "criado_em": "2026-09-18T10:10:57-03:00",
      "ultimo_acesso_em": "2026-10-14T19:02:11-03:00"
    }
  },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.13, "process": 0.01 }
}

Se o aluno não existir, a resposta é 409 com a mensagem "Usuário não encontrado.".

Listar os acessos de um aluno

GET /usuario/acesso/{ident}

Mostra todos os cursos a que o aluno tem ou já teve acesso, com o prazo de cada um.

ParâmetroOndeObrigatórioDescrição
identcaminhoSimID, e-mail ou CPF/CNPJ do aluno
curl https://escola.asalahub.com/api/v1/usuario/acesso/1234 \
  -H "Authorization: ash_sua_chave_aqui"
{
  "success": true,
  "code": 200,
  "data": {
    "usuario": { "id": 1234, "nome": "Maria Silva", "email": "maria@email.com", "...": "..." },
    "acesso": [
      {
        "produto": { "id": 12, "ordem": 1, "nome": "Atendimento que Encanta", "oferta_url": null },
        "duracao": "12",
        "duracao_tipo": "months",
        "comecou_em": "2026-09-18T10:11:02-03:00",
        "encerra_em": "2027-09-18T10:11:02-03:00",
        "encerrado": false
      },
      {
        "produto": { "id": 15, "ordem": 2, "nome": "Comercial que Vende", "oferta_url": "https://loja.exemplo.com/comercial" },
        "duracao": null,
        "duracao_tipo": "vitalicio",
        "comecou_em": "2026-10-01T08:00:00-03:00",
        "encerra_em": null,
        "encerrado": false
      }
    ]
  },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.13, "process": 0.01 }
}
CampoDescrição
produtoCurso do acesso (oferta_url é o link de oferta configurado no curso, se houver)
duracao + duracao_tipoPrazo do acesso: years, months ou days; vitalicio (com duracao nula) quando não expira
comecou_em / encerra_emInício e fim do acesso (encerra_em nulo = vitalício)
encerradotrue se o acesso foi retirado (reembolso, cancelamento, à mão) ou já venceu

Ver o progresso de um aluno em um curso

GET /usuario/progresso_por_produto/{ident}/{produto}
ParâmetroOndeObrigatórioDescrição
identcaminhoSimID, e-mail ou CPF/CNPJ do aluno
produtocaminhoSimID do curso (veja Produto)
curl https://escola.asalahub.com/api/v1/usuario/progresso_por_produto/1234/12 \
  -H "Authorization: ash_sua_chave_aqui"
{
  "success": true,
  "code": 200,
  "data": {
    "progresso": {
      "total": "33.3%",
      "assistidas": 2,
      "completas": 1,
      "aulas": [
        {
          "item_id": 501,
          "count": 3,
          "acesso_em": "2026-10-14 22:02:11",
          "aula": { "id": 501, "ordem": 1, "nome": "Boas-vindas" }
        },
        {
          "item_id": 502,
          "count": 1,
          "acesso_em": "2026-10-14 22:15:40",
          "aula": { "id": 502, "ordem": 2, "nome": "O cliente no centro" }
        }
      ]
    }
  },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.14, "process": 0.02 }
}
CampoDescrição
totalPercentual de aulas publicadas concluídas pelo aluno
assistidasQuantas aulas o aluno abriu ou concluiu
completasQuantas aulas o aluno concluiu
aulas[].countQuantas vezes o aluno abriu a aula
aulas[].acesso_emÚltimo acesso à aula, no formato AAAA-MM-DD HH:MM:SS (horário UTC)
aulas[].aula.ordemPosição da aula no curso, considerando só as aulas publicadas

Listar alunos de uma tag

GET /usuario/lista_por_tag/{tag}

Lista os alunos que têm a tag, 150 por página.

ParâmetroOndeObrigatórioDescrição
tagcaminhoSimID da tag (veja Tag)
cursorqueryNãoCursor da próxima página
curl https://escola.asalahub.com/api/v1/usuario/lista_por_tag/7 \
  -H "Authorization: ash_sua_chave_aqui"
{
  "success": true,
  "code": 200,
  "data": {
    "paginator": { "perPage": 150, "next_page_url": null, "prev_page_url": null },
    "usuario": [
      { "id": 1234, "nome": "Maria Silva", "email": "maria@email.com", "...": "..." }
    ]
  },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.13, "process": 0.01 }
}

Adicionar uma tag ao aluno

POST /usuario/adicionar_tag
ParâmetroOndeObrigatórioDescrição
usuario_idcorpoSimID, e-mail ou CPF/CNPJ do aluno
tag_idcorpoSimID da tag

Se o aluno já tiver a tag, nada muda e a resposta é de sucesso.

curl -X POST https://escola.asalahub.com/api/v1/usuario/adicionar_tag \
  -H "Authorization: ash_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{"usuario_id": "maria@email.com", "tag_id": 7}'
{
  "success": true,
  "code": 200,
  "data": { "usuario_id": 1234, "tag_id": 7, "id": 3812 },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.13, "process": 0.01 }
}

id é o identificador do vínculo entre o aluno e a tag.

Remover uma tag do aluno

POST /usuario/remover_tag
ParâmetroOndeObrigatórioDescrição
usuario_idcorpoSimID, e-mail ou CPF/CNPJ do aluno
tag_idcorpoSimID da tag
curl -X POST https://escola.asalahub.com/api/v1/usuario/remover_tag \
  -H "Authorization: ash_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{"usuario_id": 1234, "tag_id": 7}'

A resposta de sucesso não traz o campo data:

{
  "success": true,
  "code": 200,
  "profiler": { "start": 1789737057.12, "finish": 1789737057.13, "process": 0.01 }
}

Editar um aluno

POST /usuario/update/{ident}

Altera só os campos enviados; os demais ficam como estão.

ParâmetroOndeObrigatórioDescrição
identcaminhoSimID, e-mail ou CPF/CNPJ do aluno
nomecorpoNãoNovo nome (vazio é ignorado)
emailcorpoNãoNovo e-mail; precisa ser válido e não pode pertencer a outro aluno
doccorpoNãoCPF ou CNPJ (é formatado automaticamente); vazio apaga
celularcorpoNãoCelular; vazio apaga
curl -X POST https://escola.asalahub.com/api/v1/usuario/update/1234 \
  -H "Authorization: ash_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{"nome": "Maria Souza Silva", "celular": "+5521988887777"}'
{
  "success": true,
  "code": 200,
  "data": {
    "usuario": {
      "id": 1234,
      "nome": "Maria Souza Silva",
      "email": "maria@email.com",
      "doc": "242.863.810-64",
      "celular": "+5521988887777",
      "login_auto": "https://escola.asalahub.com/auth/login?crstk=Xy7...",
      "gratis": false,
      "criado_em": "2026-09-18T10:10:57-03:00",
      "ultimo_acesso_em": "2026-10-14T19:02:11-03:00"
    }
  },
  "profiler": { "start": 1789737057.12, "finish": 1789737057.14, "process": 0.02 }
}

Erros possíveis (409): "Usuário não encontrado.", "E-mail inválido." e "Já existe um usuário com este e-mail.".

Excluir um aluno

DELETE /usuario/{ident}

Remove o aluno da plataforma e encerra as sessões abertas dele (ele é desconectado na hora).

ParâmetroOndeObrigatórioDescrição
identcaminhoSimID, e-mail ou CPF/CNPJ do aluno
curl -X DELETE https://escola.asalahub.com/api/v1/usuario/1234 \
  -H "Authorization: ash_sua_chave_aqui"
{
  "success": true,
  "code": 200,
  "data": {},
  "profiler": { "start": 1789737057.12, "finish": 1789737057.13, "process": 0.01 }
}
Informação

Administradores não podem ser excluídos pela API (a resposta é 409). Se o aluno excluído voltar a comprar pelo mesmo e-mail, o cadastro dele é reativado.

Esta página ajudou?

Artigos relacionados