Referencia de la API
Autenticación e idempotencia
Credenciales, ámbitos, Idempotency-Key e identificadores de solicitud para cada llamada a la API de SciFig.
Autenticación Bearer#
Envía Authorization: Bearer <credential> en todas las solicitudes excepto GET /pricing, GET /openapi.json y GET /openapi.yaml. Se ignoran las credenciales en parámetros de consulta u otras cabeceras.
Las credenciales usan autenticación Bearer; no se admiten credenciales vinculadas a DPoP.
- Las claves API empiezan por
sk_live_. Créalas en Ajustes → Desarrollador; la clave solo se muestra una vez. Consérvala en un servidor y nunca la incluyas en una aplicación de navegador o móvil. Te enviamos un correo 7 días antes de que caduque. - Los tokens de acceso OAuth empiezan por
sf_at_. Los clientes MCP los reciben después de que los autorices; puedes desconectar un cliente en Ajustes → Desarrollador → Aplicaciones conectadas. - Las credenciales ausentes, inválidas, caducadas o revocadas devuelven
401 UNAUTHORIZED. Una cuenta que no puede usar la API, por ejemplo porque se está eliminando, devuelve401 ACCOUNT_UNAVAILABLE. - Revocar una clave impide nuevas solicitudes con ella; las tareas que ya ha creado siguen ejecutándose y se pueden consultar con otras credenciales de la misma cuenta.
Ámbitos#
| Ámbito | Permisos | Tipo de clave API |
|---|---|---|
| figures:read | GET /jobs, GET /jobs/{id}, GET /files/{file_id}, GET /credits | Clave de solo lectura; puede no caducar nunca |
| figures:generate | Todo lo incluido en figures:read y todos los puntos de acceso POST | Clave de generación; caduca después de 30 días, 90 días o 1 año; requiere una suscripción activa o un saldo positivo de créditos adquiridos en paquetes |
Una solicitud fuera del ámbito de las credenciales devuelve 403 SCOPE_DENIED. Usa una clave diferente por aplicación y entorno para poder revocar una sin afectar a las demás.
Idempotencia#
- Todas las solicitudes de creación (
POST /images/*,/charts/*,/flowcharts/*) requieren una cabeceraIdempotency-Keyde 1 a 255 caracteres ASCII visibles. Un UUID aleatorio por solicitud es la opción más sencilla. Las subidas aPOST /filestambién pueden enviar una; consulta archivos. - La misma clave con el mismo cuerpo devuelve la misma tarea y nunca vuelve a reservar créditos. En las subidas para gráficos, los bytes del archivo de datos forman parte del cuerpo.
- La misma clave con un cuerpo diferente devuelve
409 IDEMPOTENCY_CONFLICT. Las solicitudes simultáneas con la misma clave nunca crean dos tareas: cada una devuelve la misma tarea o409 IDEMPOTENCY_IN_PROGRESSconRetry-After: 1mientras se sigue admitiendo la primera. - Vuelve a intentarlo con la misma clave tras un tiempo de espera agotado, un error de red, un
429o un503: es la única forma de garantizar que no se crea una tarea dos veces. - Cuando la tarea ya existe, un error que permite reintentar (
429,503,409 IDEMPOTENCY_IN_PROGRESS) o500 INTERNAL_ERRORincluyedetails.job_id. Reintenta con la misma clave o consultaGET /jobs/{job_id}; no uses una clave nueva, porque crearía y cobraría una segunda tarea. Una tarea aceptada que no se ha podido volver a consultar recibe202y estadoqueued. - Una solicitud rechazada, por ejemplo
402 INSUFFICIENT_CREDITS, conserva esa respuesta para su clave. Después de recargar créditos o mejorar el plan, envíala de nuevo con una clave nueva.
Clientes OAuth#
- Los clientes MCP usan OAuth 2.1 con PKCE. Los tokens de acceso (
sf_at_…) duran 1 hora. Un cliente que solicita el ámbitooffline_accesstambién recibe un token de renovación (sf_rt_…) válido durante 30 días y permanece conectado hasta que lo desconectes; sinoffline_access, debes iniciar sesión de nuevo cuando caduque el token de acceso. - Los tokens de renovación rotan: cada renovación devuelve uno nuevo. Presentar un token de renovación ya utilizado se considera reutilización y revoca los tokens emitidos a partir de él, por lo que el cliente debe iniciar sesión de nuevo.
- El registro dinámico de clientes acepta un cuerpo de hasta 16 KB, con límites en la longitud de cada campo y en el número de URI de redirección. La autenticación del punto de acceso de tokens es
nonepara clientes públicos con PKCE oclient_secret_basic. - Un cliente registrado pero nunca autorizado se elimina después de 24 horas.
- Una solicitud de autorización con
prompt=loginomax_ageexige un nuevo inicio de sesión. Si ya has iniciado sesión, SciFig te pide confirmación antes de cerrarla y volver a iniciarla. - Los límites de las credenciales OAuth se cuentan por cliente y cuenta, por lo que otros usuarios del mismo asistente no consumen tus límites.
Identificadores de solicitud#
Todas las respuestas incluyen X-Request-Id; los cuerpos de error lo repiten como error.request_id. Identifica la solicitud en nuestros registros sin revelar nada más, por lo que puedes registrarlo y facilitarlo al contactar con soporte.