Pular para o conteúdo

Primeiros passos com a API

A API cobre 510 operações — praticamente tudo que a interface faz. Esta página é o suficiente para a primeira requisição funcionar.

CaminhoPara quê
Token bearer de integraçãoServidor a servidor. É o caminho recomendado.
Cookie de sessãoO que a interface web usa. Serve para testar rapidamente copiando o cookie de uma sessão aberta.

Há ainda três esquemas específicos, declarados na especificação: dois do agente de endpoint (token permanente e token de instalação) e um para serviço externo de código de uso único.

São as duas de que se precisa para instalar o cliente Windows, e nenhuma delas se chama o que a memória sugere. Elas ficam em pastas diferentes ao importar a especificação num cliente de API, porque a segunda pertence ao módulo de Manutenção, não ao de autenticação:

O que você querRotaPasta / etiquetaNome do pedido
Bearer para consumir a APIPOST /manager-api/auth/api-tokenAuthenticationGenerate a Bearer token (username + password) — start here
Token de instalação do clientePOST /manager-api/agent-control/enrollment-tokensEndpoint MaintenanceGenerate an Agent enrollment token (client install)

A diferença de estilo dos nomes também confunde e vale explicar: as etiquetas em maiúsculas com espaço (Authentication, Endpoint Maintenance) são das operações escritas à mão; as em minúsculas com hífen (api-tokens) são geradas do código. Etiqueta feia é sinal de operação com corpo genérico — não de operação menos real.

Não exige sessão prévia. Aceita conta local e conta de diretório.

POST /manager-api/auth/api-token
Content-Type: application/json
{
"username": "integracao.exemplo",
"password": "…",
"name": "Integração de exemplo",
"expiresInHours": 720
}

Responde 201 com access_token. Use em todas as demais chamadas:

Authorization: Bearer <access_token>
Terminal window
curl -sS -X POST https://openscale.suaempresa.com.br/manager-api/auth/api-token \
-H 'Content-Type: application/json' \
-d '{"username":"integracao.exemplo","password":"…","name":"Integração","expiresInHours":720}'

Confira que funcionou:

Terminal window
curl -sS https://openscale.suaempresa.com.br/manager-api/auth/me \
-H "Authorization: Bearer $TOKEN"

Precisa do token acima e da permissão ativos.computadores em nível de edição.

POST /manager-api/agent-control/enrollment-tokens
Authorization: Bearer <access_token>
Content-Type: application/json
{
"label": "Lote de agosto",
"max_uses": 50,
"expires_at": "2026-09-01T00:00:00.000Z"
}

Responde 201 com o token, prefixo ose_enroll_, exibido uma única vez. Um token serve para max_uses máquinas; o padrão é 1, então para frota informe o número.

Este é o token que o instalador do cliente Windows consome.

Para referência — este passo é do instalador, não seu:

POST /api/v1/agents/enroll
x-openscale-enrollment-token: ose_enroll_…
{ "agent_id": "…", "hostname": "…", "platform": "windows" }

Responde com o token permanente daquela máquina, o identificador do agente e as credenciais de armazenamento que ela grava na própria configuração. O token de instalação não é mais usado.

Prefixos. /manager-api/… é a API da aplicação; /api/v1/agents/… é a dos agentes de endpoint. Não são intercambiáveis, e cada operação declara a sua guarda.

Permissões. A API aplica o mesmo controle de acesso da interface, incluindo o piso que restringe administração da plataforma a super administrador. Um token não contorna permissão: ele herda a da conta. Ver Permissões e papéis.

Escopo por setor. Onde o módulo é escopável, a resposta é filtrada pelo escopo da conta. Uma integração sem escopo recebe lista vazia — não erro.

RespostaSignificado
400 missing-credentialsO corpo de /auth/api-token precisa de username e password.
409 already-ratedA avaliação de satisfação é definitiva. A resposta traz a avaliação que vale.
409 ticket-closedEscrita em chamado fechado ou cancelado.
422 sector-not-foundSetor inexistente. A resposta traz a lista dos válidos.
401 no registro de agenteToken de instalação ausente, expirado ou com usos esgotados.

351 das 510 operações são geradas do código: caminho, método, parâmetros e guarda de acesso são exatos, mas o corpo é genérico. Três campos úteis que ficariam invisíveis:

RotaCampoEfeito
POST /tickets/{id}/eventsresolve: trueResponde e resolve na mesma requisição. Só vale para quem gerencia o setor, e não vale em nota interna.
POST /tickets/{id}/satisfaction—A nota é definitiva; reenviar devolve 409 com a avaliação que vale.
PATCH /ticket-settingsslaExpediente (dias, início, fim, feriados, fuso), pausa em pendente, escalonamento e fechamento automático. Recusa 400 se o fim não for depois do início, ou se o expediente ficar sem dia.

Especificação OpenAPI — baixar o arquivo e consumi-lo em um cliente.