Documentation Index
Fetch the complete documentation index at: https://jobo.world/docs/llms.txt
Use this file to discover all available pages before exploring further.
Success
| Code | Label | Description |
|---|
200 | OK | Request succeeded. Response body contains the requested data. |
201 | Created | Resource successfully created (e.g., auto-apply profile). The response body contains the newly created object. |
200 OK
{
"data": [
{
"id": "a1b2c3d4-5678-9abc-def0-123456789abc",
"title": "Senior Software Engineer",
"company": { "name": "Acme Corp" }
}
],
"total": 1,
"page": 1,
"page_size": 25
}
201 Created
Returned when creating new resources such as auto-apply profiles:
{
"id": "f9e8d7c6-5432-1abc-def0-fedcba987654",
"name": "Default Profile",
"created_at": "2026-03-03T12:00:00Z"
}
Client Errors
| Code | Label | Description |
|---|
400 | Bad Request | Invalid request parameters. Check the message field for details. |
401 | Unauthorized | Missing or invalid API key. Include X-Api-Key header. |
402 | Payment Required | Insufficient credits. Top up your wallet. |
403 | Forbidden | API key doesn’t have permission for this resource. |
404 | Not Found | The requested resource doesn’t exist. |
429 | Too Many Requests | Rate limit exceeded. Check Retry-After header. |
400 Bad Request
{
"status": 400,
"error": "Bad Request",
"message": "Parameter 'page_size' must be between 1 and 100."
}
Common causes: missing required parameters, invalid enum values, out-of-range numbers, malformed JSON body.
401 Unauthorized
{
"status": 401,
"error": "Unauthorized",
"message": "Missing or invalid API key. Include 'X-Api-Key' header."
}
Common causes: missing X-Api-Key header, revoked or rotated API key, key from a different environment.
402 Payment Required
{
"status": 402,
"error": "Insufficient credits",
"credits_required": 10,
"credits_balance": 3
}
Common causes: wallet balance too low for the requested operation. Top up in the dashboard.
403 Forbidden
{
"status": 403,
"error": "Forbidden",
"message": "Your subscription does not include access to the Feed API."
}
Common causes: attempting to access subscription-only endpoints on a free plan, key restricted to specific endpoint scopes.
404 Not Found
{
"status": 404,
"error": "Not Found",
"message": "Profile 'f9e8d7c6-5432-1abc-def0-fedcba987654' not found."
}
Common causes: deleted resource, typo in ID, resource belongs to a different account.
429 Too Many Requests
{
"status": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded. Try again in 60 seconds.",
"retry_after": 60
}
Common causes: exceeding per-minute, per-hour, or per-day request quotas. See Rate Limits.
Server Errors
| Code | Label | Description |
|---|
500 | Internal Server Error | Something went wrong on our end. Retry the request. |
503 | Service Unavailable | Service is temporarily down for maintenance. Retry shortly. |
500 Internal Server Error
{
"status": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred. Please retry your request."
}
503 Service Unavailable
{
"status": 503,
"error": "Service Unavailable",
"message": "The service is temporarily unavailable for maintenance. Please try again in a few minutes."
}
Retry Strategy
| Status | Retry? | Strategy | Details |
|---|
400 | ❌ | Fix the request parameters | Read the message field — it tells you exactly what’s wrong. No amount of retrying will help. |
401 | ❌ | Check your API key | Verify the key is active in your dashboard. If you recently rotated keys, ensure you’re using the new one. |
402 | ❌ | Top up credits | Check credits_required vs credits_balance in the response to know exactly how much you need. |
403 | ❌ | Upgrade your plan | This endpoint requires a higher subscription tier or specific permissions. |
404 | ❌ | Verify the resource ID | Confirm the resource exists and belongs to your account. |
429 | ✅ | Wait for Retry-After seconds | Use the exact value from the Retry-After header. Implement exponential backoff with jitter for repeated 429s. |
500 | ✅ | Retry with exponential backoff | Start at 1s, double each attempt, cap at 30s. Max 3–5 retries. If persistent, check status.jobo.world. |
503 | ✅ | Retry after 30–60 seconds | Typically indicates planned maintenance. Check status.jobo.world for updates. Retry up to 5 times with 30–60s delays. |