Tu primera petición
Actualizado
Una petición, una respuesta y para qué sirve cada campo. Todo lo de abajo es curl; cualquier cliente HTTP funciona igual.
Enviar la clave
Presenta la clave como un token bearer:
curl https://api.wipperoz.com/v1/jobs \
-H "Authorization: Bearer $ORBIT_API_KEY"
También se acepta la cabecera x-api-key, para clientes que no pueden establecer Authorization:
curl https://api.wipperoz.com/v1/jobs \
-H "x-api-key: $ORBIT_API_KEY"
Leer la respuesta
{
"jobs": [
{
"id": "job_01J8Z3K9Q0EXAMPLE",
"status": "published",
"title": "Senior Backend Engineer",
"description": "Own the services behind our hiring pipeline, from the API surface to the queues that move applications through it.",
"responsibilities": ["Design and ship services on AWS Lambda and DynamoDB"],
"skills": [{"name": "TypeScript", "level": "required"}],
"benefits": ["Remote-first"],
"seniority": "senior",
"employmentType": "full_time",
"contractType": "permanent",
"salary": {"min": 150000, "max": 180000, "currency": "AUD", "period": "year"},
"location": {"country": "AU", "state": "NSW", "city": "Sydney", "remotePolicy": "hybrid"},
"company": {"name": "Acme Robotics"},
"postedAt": "2026-09-01T02:15:00.000Z",
"updatedAt": "2026-09-03T10:40:00.000Z",
"expiresAt": "2026-10-01T02:15:00.000Z",
"url": "https://www.wipperoz.com/en/jobs/acme-robotics/senior-backend-engineer",
"applyLink": "https://www.wipperoz.com/en/apply/job_01J8Z3K9Q0EXAMPLE?src=careers&account=acc_01J8Z3EXAMPLE"
}
],
"nextCursor": null
}
Tres campos cargan con el peso:
statusespublished,closedoexpired. Solopublishedacepta candidaturas. Los otros dos se devuelven en lugar de omitirse para que tu página pueda decir “este puesto se ha cerrado” en vez de mostrar un enlace roto.applyLinkes donde se postula una persona candidata. Enlaza ahí; no copies el formulario. Elsrc=careers&account=…del final es como la página de postulación registra que la persona vino de tu sitio, y es lo que permite separar las candidaturas de tu página de empleo de las que envía Wipperoz.nextCursoresnullcuando esta es la última página. Cuando no lo es, devuélvelo como?cursor=para pedir la siguiente.
Una sola vacante
curl https://api.wipperoz.com/v1/jobs/job_01J8Z3K9Q0EXAMPLE \
-H "Authorization: Bearer $ORBIT_API_KEY"
La vacante de otra cuenta, un borrador y un id desconocido responden todos 404. Un borrador todavía no tiene existencia pública.
Cabeceras en cada respuesta
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 119
X-RateLimit-Reset: 1788700860
Cada clave puede hacer 120 peticiones por minuto. Por encima de eso, la respuesta es 429 con un Retry-After en segundos. Una página de empleo que se sincroniza de forma programada no lo verá nunca.
Cuando algo va mal
Todos los errores tienen la misma forma:
{
"error": {
"code": "forbidden",
"message": "This key does not carry the `jobs:read` scope. Mint a key with it in Orbit → Settings → API keys.",
"requestId": "5f7a9c1e-2b3d-4e5f-8a9b-0c1d2e3f4a5b"
}
}
Cita el requestId cuando escribas a soporte. La lista completa de códigos y de todos los parámetros está en la referencia:
GET /v1/jobs