POST
/api/public/v1/tokenBody de entrada
PublicTokenRequest
Solicitud de token
Credencial emitida para un cliente de API pública.
PropiedadTipoDescripción
apiKeyobligatoriostring · passwordAPI key completa mostrada una sola vez al crear la credencial.Ejemplo JSON
{
"apiKey": "trowel_live_0123456789abcdef0123456789abcdef.YOUR_SECRET_VALUE"
}Respuesta
200Token emitido.
PublicTokenResponse
Token de acceso
Token temporal y scopes concedidos a la credencial.
PropiedadTipoDescripción
accessTokenobligatoriostringJWT que se envía como Bearer token.tokenTypeobligatoriostringTipo de token. Siempre Bearer.expiresInobligatoriointegerSegundos restantes hasta la caducidad.scopesobligatoriostring[]Permisos efectivos incluidos en el token.Ejemplo JSON
{
"accessToken": "eyJhbGciOi…",
"tokenType": "Bearer",
"expiresIn": 900,
"scopes": [
"products:read"
]
}Ejemplo de respuesta
{
"accessToken": "eyJhbGciOi…",
"tokenType": "Bearer",
"expiresIn": 900,
"scopes": [
"products:read"
]
}Errores
400Solicitud incorrectaapplication/json401Autenticación inválida o no proporcionadaapplication/json403Permisos insuficientesapplication/json404Recurso no encontradoapplication/json409Conflicto con el estado actualapplication/json410Recurso ya no disponibleapplication/json422Error de validaciónapplication/json429Límite de solicitudes excedidoapplication/jsonVer modelo de error
PublicApiError
Error de API
Formato estable de los errores públicos.
PropiedadTipoDescripción
statusobligatoriointegerCódigo HTTP.codeobligatoriostringCódigo estable para tratamiento automático.messageobligatoriostringMensaje legible.correlationIdobligatoriostringIdentificador para soporte y trazabilidad.currentConcurrencyTokenstring | nullToken actual cuando existe un conflicto.validationErrorsobject<string,string[]>Errores agrupados por campo.Ejemplo JSON
{
"status": 422,
"code": "validation_error",
"message": "The request is invalid.",
"correlationId": "01J9EXAMPLE",
"validationErrors": {
"unitCode": [
"The unit does not exist."
]
}
}