Descripción general de la API
La API REST pública de SecureCodingHub te permite aprovisionar usuarios, crear asignaciones, ingerir hallazgos de escáneres y suscribirte a eventos desde tus propios sistemas, sin tener que hacer scraping del panel de administración.
Cuándo usar la API
Usa la API pública cuando quieras que SecureCodingHub se comporte como una pieza más de tu infraestructura y no como un panel separado. Integraciones habituales:
- Pipelines de CI/CD: envía la salida SARIF de CodeQL, Snyk, Semgrep o cualquier herramienta SAST para crear automáticamente asignaciones de formación específicas para el autor del commit.
- Sincronización con RR. HH. / IdP: aprovisiona usuarios al contratar y desactívalos al causar baja, en paralelo con SCIM.
- Ticketing y SOAR: abre un ticket de Jira cada vez que un desarrollador no supera una asignación obligatoria, o lanza un incidente de PagerDuty cuando un certificado se vence.
- Informes personalizados: lleva los datos de progreso y auditoría a tu propia herramienta de BI (Looker, Metabase, Tableau).
- Paneles de marca blanca: incrusta estadísticas de finalización dentro de tu portal interno.
URL base y versionado
Cada endpoint público se alcanza a través de una única URL base con la versión fijada en la ruta:
https://api.limeplate.com/api/public/v1El contrato v1 es estable. Los cambios incompatibles se publicarán como v2 en una ruta nueva; v1 seguirá disponible durante al menos 12 meses tras la disponibilidad general de una nueva versión mayor.
Dos superficies, una sola plataforma
La aplicación web de administración en app.securecodinghub.com y la API pública en api.limeplate.com/api/public/v1 están separadas de forma intencionada. Usan esquemas de autenticación distintos, políticas de límite de tasa distintas y convenciones de identificador distintas. Los endpoints internos (/api/sch/...) pueden cambiar sin previo aviso; solo los endpoints documentados en esta sección están garantizados.
Recorrido en 30 segundos
El flujo de una nueva integración casi siempre es así:
Crea una API key en la consola de administración, en Organización → Claves de API. Concede solo los scopes que necesites (users:read, assignments:write, etc.).
Copia el token scs_live_…. El token se muestra una sola vez al crearlo: guárdalo en tu gestor de secretos de inmediato.
Realiza tu primera llamada enviando Authorization: Bearer scs_live_… en cualquier endpoint.
Para eventos que se originan dentro de SecureCodingHub (se completa una asignación, se ingiere un run SARIF), suscribe un endpoint de webhook y verifica la firma HMAC en cada entrega.
Tu primera solicitud
Esta llamada devuelve los metadatos de la organización propietaria de la API key. Es la comprobación de salud recomendada después de emitir un token nuevo:
curl https://api.limeplate.com/api/public/v1/org \
-H "Authorization: Bearer scs_live_yourkeyhere"Una respuesta correcta tiene este aspecto:
{
"id": "e188fc87-1334-48bd-84d7-5e3e64cecb52",
"name": "Acme Corp",
"slug": "acme",
"domain": "acme.com",
"plan": "growth",
"maxSeats": 500,
"trialExpiresAt": null,
"isActive": true,
"createdAt": "2026-01-12T08:42:11Z"
}Convenciones
| Tema | Convención |
|---|---|
| Transporte | Solo HTTPS. Las solicitudes HTTP simples se rechazan en el edge. |
| Codificación | Cuerpos de solicitud y respuesta en JSON. Content-Type: application/json en cada POST y PATCH. |
| Capitalización | Todos los nombres de campo usan camelCase tanto en solicitudes como en respuestas (y en payloads de webhooks). |
| Marcas de tiempo | Cadenas ISO 8601 en UTC (2026-05-29T13:45:12Z). |
| Identificadores | Todos los IDs de recurso son UUIDs v4 según RFC 4122. |
| Cuerpos vacíos | Los endpoints que solo confirman una operación devuelven 200 OK con { "message": "..." }. |
| Idempotencia | Donde importa (por ejemplo, en la ingesta de SARIF), la idempotencia se basa en identificadores naturales de la solicitud, no en un header aparte. |
Especificación OpenAPI
Un documento OpenAPI 3.0 que describe cada endpoint público se sirve desde el mismo host:
https://api.limeplate.com/openapi/v1.jsonPuedes pegar esa URL directamente en Postman, Insomnia, Stoplight o cualquier herramienta de generación de código (openapi-generator, @hey-api/openapi-ts, NSwag) para generar un cliente tipado.
Soporte y estado
Las incidencias operativas, los cambios incompatibles y los avisos de obsolescencia se envían a la dirección de correo registrada con tu organización. Para preguntas de integración y reportes de bugs, escribe a support@securecodinghub.com incluyendo el header X-Request-Id de la solicitud si puedes capturarlo de una llamada fallida: acelera enormemente el triaje.