Docs

Herramientas por la API

Última actualización: 2026-09-074 min de lectura

Las mismas herramientas que usa en el gabinete están disponibles de forma programática. Cada llamada se cobra de su monedero igual que el trabajo por la interfaz: primero la suscripción, luego el paquete, luego el pago por uso. Las lecturas (GET) no se cobran nunca.

Dirección base: https://developers.grem.capital/api/v1.

Las herramientas

LlamadaAlcance necesarioCómo funciona
POST /valuation/expresscualquier clavesíncrona
POST /valuation/reporttools:valuationdiferida
POST /valuation/renttools:rentsíncrona
POST /valuation/reviewtools:reviewdiferida, con archivo
POST /content/generatetools:contentgendiferida
POST /text/generatetools:textdiferida
POST /avatar/videotools:avatardiferida
POST /video/createtools:videodiferida, con archivo
POST /photo/enhancetools:photodiferida, con archivo
POST /floorplan/createtools:floorplandiferida, con archivo
POST /draft/extracttools:draftsíncrona, con archivo
POST /site/createtools:sitegensíncrona, necesita un anuncio
POST /pdf/createtools:pdfdiferida, necesita un anuncio

Si la clave no tiene el alcance, la llamada devuelve 403. Los alcances se conceden al crear la clave en el gabinete: Herramientas de IA → API → Claves. Véase Autenticación.

Llamadas síncronas

Una herramienta síncrona devuelve 200 con el resultado terminado en el cuerpo de la respuesta:

curl -X POST https://developers.grem.capital/api/v1/valuation/rent \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"propertyCategory":"apartment","totalArea":50,"city":"Kyiv"}'

Llamadas diferidas

Las herramientas largas (informe de tasación, textos, foto, vídeo, avatar, plano, PDF) devuelven 202 y un identificador de la tarea:

{ "jobId": "…", "status": "pending", "requestId": "req_…" }

Consulte el estado en GET /<ruta de la herramienta>/jobs/{jobId}:

curl -H "Authorization: Bearer gsk_live_xxx" \
  https://developers.grem.capital/api/v1/content/generate/jobs/JOB_ID

La respuesta lleva el campo status. Los estados finales son completed (o done, success) y failed. Mientras la tarea corre, repita la petición cada pocos segundos.

Consultar es gratis: un GET no cuenta como llamada de API ni se cobra. Aun así, suscribirse a un evento es mejor que consultar sin parar: véase Webhooks.

Cada tarea pertenece a la clave que la creó. Un jobId ajeno devuelve siempre 404, aunque esa tarea exista.

Herramientas que reciben un archivo

Las llamadas marcadas «con archivo» aceptan multipart/form-data: las opciones van como JSON en un campo de texto llamado data, y el archivo es una parte aparte.

curl -X POST https://developers.grem.capital/api/v1/photo/enhance \
  -H "Authorization: Bearer gsk_live_xxx" \
  -F 'data={"mode":"enhance"}' \
  -F "image=@room.jpg"

Enviar JSON plano a una de ellas devuelve 400 con la nota de que se espera multipart/form-data.

Herramientas que necesitan un anuncio

El generador de sitios y el de PDF construyen la presentación a partir de un anuncio existente, así que el cuerpo de la petición debe llevar un objectId (o un collectionId para una selección). El anuncio tiene que ser suyo: un id ajeno devuelve un error de acceso.

curl -X POST https://developers.grem.capital/api/v1/pdf/create \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"objectId":"64f…","language":"en"}'

Los archivos terminados

Los resultados (PDF, vídeos, imágenes, páginas) vuelven como enlaces en el dominio de GREM. Descárguelos con GET /artifacts/… usando la misma clave: véase Archivos y resultados.

Reintentar sin duplicar

Crear una tarea se puede reintentar sin riesgo: envíe la cabecera Idempotency-Key y un reintento con la misma clave devolverá el resultado original en vez de cobrarle dos veces. Detalles en Idempotencia.

Qué significan los errores

  • 402: falta dinero en el monedero, o se ha agotado la cuota del plan.
  • 403: la clave no tiene alcance para esta herramienta.
  • 429: se ha alcanzado el límite de frecuencia; reintente tras la pausa indicada en la cabecera Retry-After.

La lista completa está en Errores.

Artículos relacionados

¿Le resultó útil este artículo?