/api/v1/mequalquer chaveQuem sou eu
A organização, a chave, os escopos que valem HOJE, os limites e a cota do período. Chame na subida do seu sistema: confirma a chave, os escopos e os limites antes do primeiro envio.
Os escopos que valem são o menor de dois: os marcados na chave e as
permissões que o dono da chave tem hoje. Os limites são os da sua
organização — o número que o seu programa compara está em
limits[].key e rateLimits[].counter.
curl
curl -X GET "https://app.arcsphera.com/api/v1/me" \ -H "Authorization: Bearer $ARCSIGN_API_KEY"
Node
// Node 18 ou mais, como módulo ES (o await no topo): salve como exemplo.mjs e rode node exemplo.mjs.
const resposta = await fetch("https://app.arcsphera.com/api/v1/me", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.ARCSIGN_API_KEY}`,
},
});
if (!resposta.ok) {
// RFC 9457: decida pelo `code`, mostre o `detail`, guarde o `requestId`.
const problema = await resposta.json();
throw new Error(`${problema.code}: ${problema.detail} (${problema.requestId})`);
}
const dados = await resposta.json();A resposta 200: os campos
| Campo | Tipo | O que é |
|---|---|---|
| organization * | object | |
| organization.id * | string | |
| organization.name * | string | null | |
| apiKey * | object | |
| apiKey.id * | string | |
| apiKey.name * | string | |
| apiKey.prefix * | string | O começo visível da chave, para reconhecê-la. |
| apiKey.scopes * | Scope[] | Os escopos que VALEM hoje. |
| owner * | object | O usuário dono da chave. A chave age como ele, e para quando ele perde a permissão. |
| owner.name * | string | null | Nulo quando a conta não tem nome. |
| owner.email * | string | |
| rateLimits * | object[] | Os contadores de chamada, com o que já se usou na janela. |
| rateLimits[].counter * | string | A chave do contador — a mesma do número em `limits`.requests_per_minute · requests_per_5_seconds |
| rateLimits[].label * | string | |
| rateLimits[].windowSeconds * | integer | |
| rateLimits[].limit * | integer | |
| rateLimits[].used * | integer | |
| rateLimits[].resetSeconds * | integer | |
| limits * | object[] | Os números que valem para a organização (o de fábrica, ou o que o negócio fechado mudou). |
| limits[].key * | LimitKey | A chave de cada número do `/me`: `test_envelopes_per_week` (envelopes de teste por semana), `requests_per_minute` e `requests_per_5_seconds` (as chamadas da chave), `envelope_reads_per_minute` (consultas ao mesmo envelope), `document_downloads_per_hour` (downloads do mesmo documento), `invitations_per_hour` (convites da organização), `active_api_keys`, `webhooks`, `webhook_retry_days` (os dias de novas tentativas, e de falha seguida até desligar) e `idempotency_key_hours`. test_envelopes_per_week · requests_per_minute · requests_per_5_seconds · envelope_reads_per_minute · document_downloads_per_hour · invitations_per_hour · active_api_keys · webhooks · webhook_retry_days · idempotency_key_hours |
| limits[].label * | string | |
| limits[].value * | integer | |
| envelopeQuota * | object | A cota de envelopes do período. |
| envelopeQuota.periodFrom * | string (date-time) | |
| envelopeQuota.periodTo * | string (date-time) | |
| envelopeQuota.quota * | integer | |
| envelopeQuota.counted * | integer | Os envelopes que contaram na cota no período — os CONCLUÍDOS (a 1b, 21/10/2026). |
| envelopeQuota.countedWhen * | string | Quando o envelope conta: ao concluir. O recusado, o expirado e o cancelado não contam.completed |
| envelopeQuota.overage * | integer |
- 200 A chave vale.
- 400 Corpo que não é JSON (`malformed_request`), `Idempotency-Key` faltando ou inválida, ou a chave na URL (`api_key_in_url`).
- 401 Sem chave, chave desconhecida, revogada ou vencida — sempre a mesma resposta, para não dizer qual dos casos é.
- 403 A chave existe, mas não tem o escopo; ou o dono perdeu a permissão ou foi desativado; ou o IP não está na lista; ou a organização não contratou a ArcSign API; ou a chave de teste pediu o que o teste não faz (`not_available_in_test`).
- 429 Um limite foi atingido. `Retry-After` diz quando voltar, e o corpo diz o número que valeu (`limit`, `window`, `retryAfter`; nos envelopes de teste, `resetsAt`).
- 500 O erro que ninguém previu (`internal_error`). Nada de dentro vai no corpo; o `requestId` liga o pedido à linha do nosso log — mande-o ao suporte se repetir.
- 503 O banco está só de leitura (a máquina cópia), o antivírus está fora do ar, a instalação não tem a configuração da API ou a do webhook.