Flujo
- Crear solicitud de reporte con la dirección y un
Idempotency-Key. La respuesta es202constatus: "preparing". - Consulta Obtener solicitud de reporte, o suscribe un endpoint de webhook del workspace a los eventos de la solicitud.
- Cuando
statusseaready, leemeasurements, descargareport_pdfy descarga el modelo 3D de la casa desderender_3d.download_url. Consulta Modelo 3D.
reports.write. Las lecturas necesitan reports.read. Cualquier key del workspace con reports.read puede leer una solicitud, así que rotar una key conserva las solicitudes de la key anterior.
Reglas de creación
addresses obligatorio y debe parecer una dirección de propiedad en EE. UU.latylngson opcionales, pero deben ir juntos. Sin ellos, RoofKit ubica la dirección, o elplace_idde Google Places cuando lo envías.- Una dirección que RoofKit no puede ubicar devuelve
400 VALIDATION_ERROR. Envíalatylngcon la dirección. external_report_ides tu id, por ejemplo el id de la inspección. Una solicitud activa con el mismo id responde la creación con200yreused: true. Una solicitud fallida no cuenta.roof_materialesshingle,tileometal. Sin él, el equipo del workspace elige el acabado después en RoofKit.- El mismo
Idempotency-Keyy el mismo payload repiten la primera respuesta conIdempotency-Replayed: true. Una repetición no inicia nada.
source: "jobnimbus" y toma el id del trabajo de JobNimbus como external_report_id. Si envías el mismo id de trabajo, recibes esa misma solicitud, así una reserva nunca compra dos reportes.
Estado
Valores de
attention_reason:
needs_outline: la IA no pudo trazar el techo. Un miembro del equipo dibuja el contorno en RoofKit y la ejecución continúa.preparation_failed: una etapa se detuvo. Un miembro del equipo la reintenta en RoofKit.insufficient_credits: la ejecución queda en pausa hasta que el workspace compre créditos y la reintente.
ready con report_pdf_failure_code o render_3d.failure_code.
Para generar otra vez un modelo 3D que falló o no existe, crea la solicitud de nuevo con el mismo external_report_id. La respuesta es 200 con reused: true, y la solicitud vuelve a rendering. Sus medidas y su PDF no cambian. Puedes hacerlo tres veces por solicitud.
Notificaciones
El dueño del workspace elige los eventos en Configuración para tu endpoint.
data.details trae request_id y external_report_id. report_request.ready también trae source, revision_id y pdf_export_id. report_request.needs_attention trae reason.
Créditos
- La creación verifica primero el precio del reporte. Un workspace que no puede pagar recibe
402 INSUFFICIENT_CREDITSy no se crea borrador. - La ejecución cobra el contorno con IA y el reporte, igual que el flujo por dirección de la app.
- El PDF cobra una exportación por revisión. El modelo 3D no tiene costo.
Medidas
Las medidas son las cifras que la app imprime y cotiza para la revisión entregada. Las keys son snake_case estables con la unidad en el nombre. Las áreas están en pies cuadrados. Las longitudes están en pies.version cambia solo cuando se renombra o se elimina una key.
Un valor en squares es su área dividida entre 100, con dos decimales. Cada valor redondea por separado, así que
sloped_squares más flat_squares puede diferir de roof_squares en 0.01.
Plano y pendiente pronunciada
- Una cara es plana cuando el equipo la marca como techo plano, o cuando su pendiente es menor que 2/12. La pendiente redondea primero a un número entero, así una cara a 1.6/12 se lee como 2/12 y tiene pendiente.
- Una cara sin pendiente no es plana.
- La pendiente pronunciada empieza en 8/12, donde una cuadrilla no puede caminar el techo.
- La banda
steepdearea_by_pitch_band_sqftempieza en 10/12. Es la banda de mano de obra de la lista de precios.
Nombres de las líneas del techo
Las keys delengths_ft son los nombres estables de las líneas del techo. Cada key siempre está presente. Una key vale 0 cuando el techo no tiene esa línea.
eaves_flatmáseaves_slopedeseaves. Las dos keys de transición de pendiente sumanslope_transitions.drip_edge,starter,ridge_capyridge_ventsiguen las reglas de la lista de precios.- Una línea de referencia solo marca el techo. No lleva remate, así que ninguna key la cuenta.
Tokens de medición de JobNimbus
Estos tokens de medición de JobNimbus corresponden a una key de medida.
Los tokens de cargos, desecho, retiro y permisos dependen de reglas fuera del techo, como el material del techo actual o la distancia desde el contratista. Calcúlalos de tu lado.
Modelo 3D
El modelo 3D es un archivo GLB (glTF binario) de la casa: las paredes, el techo con el acabado del reporte, los remates, las canaletas y las aberturas. No tiene césped, cielo ni árboles. Está en metros, así que la realidad aumentada muestra la casa a su tamaño real. Descarga el modelo 3D de la solicitud de reporte con tu API key. Redirige (307) al archivo. La URL de almacenamiento no vence, así que trátala como un secreto y llama a la ruta otra vez cuando necesites el archivo. RoofKit no sirve ningún enlace público al modelo.
Aloja el archivo de tu lado y muéstralo con el <model-viewer> de Google. El visitante arrastra para girar la casa y pellizca o usa la rueda para acercar.
max-camera-orbitmantiene la cámara por encima del suelo, como en el editor de RoofKit.touch-action="pan-y"deja que un deslizamiento vertical desplace tu página en el teléfono. Un deslizamiento horizontal gira la casa.- La casa de prueba dio un archivo de unos 4,4 MB.
- Una solicitud creada antes del 29 de octubre de 2026 tiene una imagen, no un modelo. Muestra
render_3d.status: "failed"confailure_code: "model_missing". Créala otra vez con el mismoexternal_report_idpara generar el modelo.