Claves de API
Generar, delimitar y revocar claves API — el acceso de los sistemas externos al GraphQL de tus apps.
Los sistemas externos — un ERP que sincroniza clientes, un sitio que crea
pedidos, una integración de facturación — llaman al GraphQL de las apps con
una clave API: un secreto enviado en el header x-api-key de cada
petición. Las claves se gestionan a nivel de la plataforma y se
comparten entre apps: cada clave tiene un scope — eliges las apps y,
por app, todos los endpoints o solo algunos. Una integración de
facturación puede, por ejemplo, leer cuentas en la app Gestión de Clientes
y escribir documentos en otra app, con una única clave.
Nota
Las claves son de quien administra la plataforma: la página Claves API solo está disponible para cuentas de administrador.
La página Claves API
Abre el menú Claves API en la navegación global. La lista muestra todas las claves de la plataforma:
| Columna | Qué es |
|---|---|
| Nombre | El nombre que le diste a la clave — identifica la integración. |
| Prefijo | Los primeros caracteres de la clave (ej. amk_A1b2C3…) — sirven para reconocer cuál es cuál sin mostrar nunca la clave entera. |
| Scope | Las apps a las que da acceso y, por app, «todos los endpoints» o la lista de los concedidos. |
| Estado | activa o revocada. |
| Último uso | Cuándo se usó la clave por última vez — nunca, si aún no se usó. |

Consejo
La columna Último uso es tu herramienta de limpieza: una clave con meses sin uso es candidata a revocación.
Crear una clave API
- Pulsa Nueva clave API.
- Dale un Nombre de la clave — ej.
integracion-facturacion. - En Scope — apps y endpoints permitidos, marca las apps a incluir. Por defecto, cada app marcada concede «Todos los endpoints de esta app.»
- Para apretar el acceso en una app, marca Restringir a endpoints específicos y elige las APIs una a una. En una API de Tabla, la concesión cubre todas las operaciones activas — la lista muestra «da acceso a: getContas, addContas, …» para que sepas exactamente qué concedes.
- Pulsa Generar clave API.

Copiar y guardar la clave
Después de generar, la ventana muestra la Clave en texto claro — una única vez. Cópiala con Copiar y guárdala en un sitio seguro (un gestor de secretos, la caja fuerte de tu equipo). Cuando cierres la ventana ya no la vuelves a ver — la plataforma no guarda la clave en claro; si la pierdes, solo podrás revocarla y generar otra.

Atención
Trata la clave como una contraseña: no la metas en código fuente, ni en URLs, ni en pantallas de usuario. Si sospechas de una fuga, revoca ya — generar una clave nueva cuesta segundos.
Usar la clave
La clave va en el header x-api-key de cada petición al endpoint GraphQL
de la app:
curl -X POST 'https://tu-host/api/graphql/gestao-clientes' \
-H 'content-type: application/json' \
-H 'x-api-key: amk_………' \
-d '{"query":"query { getContas(take: 5) { id nome } }"}'
La pestaña Docs de cada API genera este ejemplo (y la variante JavaScript) ya con la operación correcta — solo falta tu clave.
Lo que una clave ve y no ve:
- Solo APIs publicadas — borradores nunca, incluso con scope de app entera.
- Solo lo que el scope concede: llamar a una app fuera del scope
devuelve
403 — API key not authorised for this project; llamar a un endpoint fuera del scope,403 — API key not authorised for this endpoint. - Siempre la versión principal de la app (o la versión publicada de la dirección usada) — nunca la versión de trabajo de un developer.
Límites y errores
Cada clave tiene un techo de peticiones por minuto. Las respuestas de error que una integración debe saber tratar:
| Respuesta | Significado | Qué hacer |
|---|---|---|
401 |
Clave ausente, inválida, expirada o revocada. | Verifica el header y el estado de la clave en la lista. |
403 |
Clave válida pero sin acceso a la app o al endpoint. | Ajusta el scope — genera una clave nueva con el scope correcto. |
429 |
Techo de peticiones por minuto alcanzado. | Espera el tiempo indicado en el header retry-after y repite. |
Revocar una clave
- En la lista, pulsa el icono de revocar de la fila.
- Confirma en Revocar clave.
La revocación es inmediata: todas las apps consumidoras de esta clave
pierden el acceso en la petición siguiente. Una clave revocada no puede
reactivarse — queda en la lista, marcada revocada, como registro.
¿Por qué no…?
- Perdí la clave — ¿puedo verla otra vez? No. La clave en claro solo se muestra en el momento de la creación. Revoca la antigua y genera otra.
- Necesito dar acceso a un endpoint más — ¿edito la clave? El scope se define en la creación. Genera una clave nueva con el scope completo, cámbiala en la integración y revoca la antigua.
- ¿Por qué recibe la integración
403en un endpoint nuevo? La clave fue restringida a endpoints específicos y el nuevo no está en la lista — el mismo remedio: clave nueva con el scope correcto. - ¿La clave da acceso a las pantallas de la app? No. Una clave solo habla con el endpoint GraphQL. Las cuentas de usuarios de la app son otra cosa, gestionadas en los ajustes de la propia app.