API Reference
La API de Hrvst te permite enviar trabajos de scraping, consultar su estado y descargar resultados de forma programática. Todos los endpoints devuelven JSON. Base URL: https://hrvst.donostia.ai
Quick Start
Extrae datos en 4 pasos:
Ve a /api-keys y genera una nueva clave. Tendrá el formato hv_ + 64 caracteres hex.
curl -X POST https://hrvst.donostia.ai/api/jobs \
-H "Authorization: Bearer hv_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"scraperSlug": "google-maps",
"name": "Cafes Barcelona",
"params": {
"query": "cafes in Barcelona",
"limit": 20,
"language": "en",
"country": "ES"
}
}'Consulta el estado cada pocos segundos hasta que status sea COMPLETED, FAILED o CANCELLED.
# Repeat until status != PENDING and != PROCESSING curl https://hrvst.donostia.ai/api/jobs/JOB_ID \ -H "Authorization: Bearer hv_your_api_key"
Los resultados están en el campo results del objeto job. También puedes descargarlos como CSV o JSON:
# CSV curl "https://hrvst.donostia.ai/jobs/JOB_ID/export?format=csv" \ -H "Authorization: Bearer hv_your_api_key" -o results.csv # JSON curl "https://hrvst.donostia.ai/jobs/JOB_ID/export?format=json" \ -H "Authorization: Bearer hv_your_api_key" -o results.json
Authentication
Todos los endpoints requieren una API key válida. Genera una desde tu cuenta.
Envía la clave en el header Authorization:
Authorization: Bearer hv_your_api_key_here
Las API keys tienen el formato hv_ + 64 caracteres hex. Requieren verificación de email para funcionar.
Créditos
Hrvst es de pago por uso. Compras créditos y los gastas en trabajos. Los créditos no caducan.
Las cuentas nuevas reciben 100 créditos gratis. Los primeros 2 desbloqueos de hrvst-agent son siempre gratuitos.
Los créditos se descuentan cuando el trabajo completa, no al crearlo. Los trabajos fallidos no consumen créditos.
Errores
Todos los errores tienen el mismo formato:
{ "error": "error description" }Rate Limits
Los límites se aplican por usuario autenticado (sesión o API key).
Cuando se supera el límite de trabajos la API devuelve 429 Too Many Requests con el mensaje "Job limit exceeded. Maximum 50 jobs per hour."
POST/api/jobs
Crea y encola un nuevo trabajo de scraping. Responde inmediatamente — consulta el ID del trabajo para ver el progreso.
Campos del body
Respuesta — 201 Created
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user-id",
"scraperSlug": "google-maps",
"status": "PENDING",
"params": { "query": "cafes in Barcelona", "limit": 20 },
"results": null,
"creditsUsed": 0,
"error": null,
"createdAt": "2026-03-14T10:30:45Z",
"updatedAt": "2026-03-14T10:30:45Z",
"completedAt": null,
"unlockCost": 0,
"unlockedAt": null,
"freeUnlock": false
}GET/api/jobs
Lista todos los trabajos del usuario autenticado, del más reciente al más antiguo.
Query params
{
"jobs": [ ...job objects... ],
"total": 42,
"page": 1,
"limit": 20,
"total_returned": 20
}GET/api/jobs/:id
Recupera un trabajo concreto. Usa este endpoint para hacer polling hasta que finalice.
curl https://hrvst.donostia.ai/api/jobs/550e8400-... \ -H "Authorization: Bearer hv_your_api_key"
Transición de estado: PENDING → PROCESSING → COMPLETED | FAILED | CANCELLED
Para hrvst-agent: el campo resultsPreview contiene 5 registros enmascarados. Llama a POST /api/jobs/:id/unlock para obtener resultsFull.
DELETE/api/jobs/:id
Cancela y elimina un trabajo. Los trabajos en curso se marcan como cancelados antes de eliminarse.
{ "status": "deleted" }GET/jobs/:id/export
Descarga los resultados de un trabajo completado como CSV o JSON. Solo funciona con trabajos en estado COMPLETED.
Query params
# Download as CSV curl "https://hrvst.donostia.ai/jobs/JOB_ID/export?format=csv" \ -H "Authorization: Bearer hv_your_api_key" \ -o results.csv # Download as JSON curl "https://hrvst.donostia.ai/jobs/JOB_ID/export?format=json" \ -H "Authorization: Bearer hv_your_api_key" \ -o results.json
POST/api/jobs/:id/unlock
Desbloquea los resultados completos de un trabajo hrvst-agent. Los primeros 2 desbloqueos por cuenta son gratuitos. Solo funciona con trabajos COMPLETED.
curl -X POST https://hrvst.donostia.ai/api/jobs/JOB_ID/unlock \
-H "Authorization: Bearer hv_your_api_key"
# Response
{ "resultsFullURL": "/jobs/JOB_ID/export?format=json" }Después de desbloquear, el campo resultsFull en GET /api/jobs/:id contiene los datos completos sin enmascarar.
GET/api/scrapers
Devuelve todos los scrapers disponibles con sus slugs, créditos y campos de salida.
curl https://hrvst.donostia.ai/api/scrapers \ -H "Authorization: Bearer hv_your_api_key"
GET/api/user/me
Devuelve el perfil y saldo de créditos del usuario autenticado.
{
"id": "user-id",
"email": "you@email.com",
"name": "Your Name",
"credits": 500,
"freeSearchesUsed": 1
}Referencia de Scrapers
google-maps 3 créditos / por registro mín. 10 créditosExtrae negocios de Google Maps con nombre, dirección, teléfono, web, redes sociales, valoración y coordenadas.
Params
Campos de salida
name · address · phone · website · rating · reviewsCount · category · latitude · longitude · placeId · businessStatus · email1 · email2 · facebook · instagram · linkedin · twitter
google-maps-reviews 2 créditos / por reseña mín. 5 créditosExtrae reseñas de clientes de cualquier negocio en Google Maps. Usa el placeId de un trabajo google-maps.
Salida: reviewId · authorName · rating · text · publishedAt · likesCount · ownerResponse
google-search 1 crédito / por resultado mín. 5 créditosExtrae resultados orgánicos de Google: URLs, títulos, descripciones y posición.
Salida: position · title · url · displayUrl · description · publishedAt · isAd
emails-contacts 2 créditos / por contacto mín. 5 créditosRastrear un sitio web y extraer todos los emails, teléfonos y perfiles sociales encontrados.
Salida: email · name · title · phone · linkedIn · twitter · facebook · instagram · sourceUrl
amazon-products 3 créditos / por producto mín. 10 créditosBuscar en Amazon y extraer productos con precios, valoraciones, ASIN e info del vendedor.
Salida: asin · title · url · price · currency · originalPrice · discount · rating · reviewsCount · seller · brand · isPrime · isBestSeller · availability
amazon-reviews 2 créditos / por reseña mín. 5 créditosExtraer reseñas de productos Amazon. Usa el asin de un trabajo amazon-products.
Salida: reviewId · title · text · rating · authorName · publishedAt · isVerified · helpfulCount · country
hrvst-agent coste variable al desbloquearAgente IA que acepta un prompt en lenguaje natural y determina qué extraer y cómo. Los resultados están enmascarados hasta desbloquear. Los primeros 2 desbloqueos son gratuitos.
Ejemplo completo con hrvst-agent
# 1. Create agent job
curl -X POST https://hrvst.donostia.ai/api/jobs \
-H "Authorization: Bearer hv_..." \
-H "Content-Type: application/json" \
-d '{"scraperSlug":"hrvst-agent","name":"Hotels Berlin","params":{"prompt":"Top 30 hotels in Berlin with price, email and website"}}'
# 2. Wait for completion (polling)
curl https://hrvst.donostia.ai/api/jobs/JOB_ID \
-H "Authorization: Bearer hv_..."
# → "status": "COMPLETED", "resultsPreview": [5 masked records]
# 3. Unlock full results
curl -X POST https://hrvst.donostia.ai/api/jobs/JOB_ID/unlock \
-H "Authorization: Bearer hv_..."
# 4. Download results
curl "https://hrvst.donostia.ai/jobs/JOB_ID/export?format=csv" \
-H "Authorization: Bearer hv_..." -o hotels_berlin.csv100 créditos gratis al registrarte. Sin tarjeta de crédito.
crear cuenta gratis →