Criar API Key
Metodo
POST https://oapi.ogmma.com.br/v1/api-keys
Conceituacao
Cria uma nova API key para a sua instituicao. Este endpoint requer autenticacao via JWT com role ADMIN (nao aceita autenticacao via API key).
Apos a criacao, a chave completa e retornada uma unica vez na resposta. Armazene-a em local seguro, pois nao sera possivel recupera-la posteriormente.
Atributos
Header
| Atributo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| Authorization | string | Sim | Bearer {JWT_TOKEN} - Token JWT de usuario com role ADMIN |
| Content-Type | string | Sim | application/json |
Body
| Atributo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| name | string | Sim | Nome descritivo da chave. Minimo 3 caracteres, maximo 100 caracteres. |
| permissions | string[] | Sim | Lista de escopos de permissao. Ex: ["messages.send", "channels.read"] |
| rateLimit | number | Nao | Limite de requisicoes por minuto. Padrao: 60. Maximo: 1000. |
| expiresAt | string | Nao | Data de expiracao no formato ISO 8601. Apos essa data, a chave sera automaticamente desativada. |
Request
- cURL
- Node.js
- Python
curl -X POST "https://oapi.ogmma.com.br/v1/api-keys" \
-H "Authorization: Bearer {JWT_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "Integracao CRM",
"permissions": [
"messages.send",
"messages.read",
"conversations.read",
"contacts.read",
"contacts.write"
],
"rateLimit": 120,
"expiresAt": "2025-12-31T23:59:59.000Z"
}'
const axios = require('axios');
const response = await axios.post(
'https://oapi.ogmma.com.br/v1/api-keys',
{
name: 'Integracao CRM',
permissions: [
'messages.send',
'messages.read',
'conversations.read',
'contacts.read',
'contacts.write'
],
rateLimit: 120,
expiresAt: '2025-12-31T23:59:59.000Z'
},
{
headers: {
'Authorization': 'Bearer {JWT_TOKEN}',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import requests
response = requests.post(
'https://oapi.ogmma.com.br/v1/api-keys',
json={
'name': 'Integracao CRM',
'permissions': [
'messages.send',
'messages.read',
'conversations.read',
'contacts.read',
'contacts.write'
],
'rateLimit': 120,
'expiresAt': '2025-12-31T23:59:59.000Z'
},
headers={
'Authorization': 'Bearer {JWT_TOKEN}',
'Content-Type': 'application/json'
}
)
print(response.json())
Response
201 - API key criada com sucesso
{
"success": true,
"data": {
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"name": "Integracao CRM",
"key": "oapi_sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"prefix": "oapi_sk_",
"permissions": [
"messages.send",
"messages.read",
"conversations.read",
"contacts.read",
"contacts.write"
],
"rateLimit": 120,
"expiresAt": "2025-12-31T23:59:59.000Z",
"createdAt": "2024-01-15T10:30:00.000Z"
}
}
Importante
O campo key e exibido apenas nesta resposta. Copie e armazene a chave em local seguro imediatamente. Apos essa resposta, nao sera possivel recuperar o valor completo da chave.
400 - Dados invalidos
{
"message": "Dados de entrada invalidos.",
"code": "VALIDATION_ERROR",
"errors": [
{
"path": "name",
"message": "O nome deve ter pelo menos 3 caracteres.",
"validation": "invalid_type"
}
]
}
401 - Nao autorizado
{
"message": "Token de autenticacao invalido ou ausente.",
"code": "AUTHENTICATION_REQUIRED"
}
403 - Permissao negada
{
"message": "Voce nao tem permissao para criar API keys. Role ADMIN necessaria.",
"code": "FORBIDDEN_PERMISSION"
}
429 - Rate limit excedido
{
"message": "Limite de requisicoes excedido. Tente novamente em alguns segundos.",
"code": "RATE_LIMIT_EXCEEDED"
}