URL base y autenticación
Cada endpoint está bajohttps://api.roofkit.ai/api/v1. Envía una API key del workspace como token Bearer en cada solicitud.
Verificar la API key
API keys
Crea y administra keys en la configuración del workspace. Mantén las keys en tu servidor y rótalas cuando cambie el responsable.
Documento OpenAPI
Descarga el contrato OpenAPI 3.1 con el que se construye esta referencia.
Contrato
RoofKit Partner API v1 autentica solicitudes con API keys del workspace. Las API keys vinculan cada solicitud exactamente a un workspace; las rutas de Partner API no aceptan roofer_id, workspace_id ni identificadores de tenant. Los endpoints autenticados están limitados a 60 solicitudes por minuto por API key, método y plantilla de ruta; los intentos de autenticación inválidos se limitan por separado a 20 solicitudes por minuto por cliente y endpoint. Los parámetros y campos de fecha/hora aceptan ISO 8601 con Z o un desfase ±HH:MM, por ejemplo 2026-09-07T04:00:00Z o 2026-09-07T00:00:00-04:00. Ambos indican el mismo instante y devuelven el mismo resultado. Codifica + como %2B en una query string. Las respuestas usan UTC. Una fecha/hora sin desfase, por ejemplo 2026-09-07T04:00:00, está obsoleta. Hasta la fecha de retiro, 2027-01-10T00:00:00Z, se interpreta como UTC, y la respuesta incluye un headerDeprecation (RFC 9745) y un header Sunset (RFC 8594). A partir de la fecha de retiro, se requiere Z o un desfase ±HH:MM. Desde entonces, una fecha/hora sin desfase devuelve 400 con el código VALIDATION_ERROR, y la respuesta no incluye ningún header Deprecation ni Sunset.
Cada API key tiene solo los scopes que un propietario o administrador del workspace eligió al crear la key, y sus scopes nunca cambian. Cada operación indica los scopes que requiere en x-required-scopes. Una key nueva en Configuración empieza con el nivel predefinido Solo lectura: leads.read, analytics.read, reports.read y data_objects.read. Una key de Solo lectura puede llamar a todas las operaciones de lectura excepto las exportaciones, las lecturas de Sales Visualizer y los Data Objects en papelera, y no puede llamar a ninguna operación de escritura. Una llamada que necesita un scope que la key no tiene devuelve 403 FORBIDDEN, y error.details.required_scope indica un scope faltante.
Errores
Cada error devuelve el mismo cuerpo.code es estable. Usa request_id cuando contactes a soporte.
Cuerpo de error
details es opcional. Cada página de endpoint lista los estados que devuelve.
Paginación
Los endpoints de lista con cursor recibenlimit y cursor, y devuelven un objeto pagination con limit, next_cursor y has_more. Envía next_cursor como cursor para leer la página siguiente. Detente cuando has_more sea false. Cada página de endpoint muestra sus propios límites.
Pruébalo
Cada página de endpoint tiene un playground. Envía la solicitud desde tu navegador directo aapi.roofkit.ai, así tu API key no pasa por el host de la documentación.