XeCubes Developer API
Welcome to the XeCubes REST API Reference. Our API is designed with predictable resource-oriented URLs, standard HTTP response codes, and JSON-encoded request and response bodies.
Base URLs​
Always target our production or sandbox API gateways:
Production: https://api.xecubes.com
Sandbox: https://stg-api.xecubes.com
Authentication Header​
Every API request requires an active API key passed in the X-API-Key HTTP header:
X-API-Key: xh_live_your_secret_key_here
Requests submitted without an API key or with an invalid key will return an HTTP 401 Unauthorized response.
Standard Response Format​
All responses follow our unified response schema:
Success Response​
{
"status": "success",
"message": "Resource retrieved successfully",
"data": { ... }
}
Error Response​
{
"status": "error",
"message": "Invalid API key provided or token has expired",
"code": "UNAUTHORIZED",
"details": {
"timestamp": "2026-06-05T12:00:00Z",
"request_id": "req_8392019482"
}
}
HTTP Status Codes​
| Code | Status | Meaning |
|---|---|---|
200 | OK | The request succeeded and returned data. |
201 | Created | The resource was created successfully. |
400 | Bad Request | Invalid request payload, missing mandatory fields. |
401 | Unauthorized | Missing or invalid X-API-Key. |
403 | Forbidden | Key is valid but lacks the required permission scope. |
404 | Not Found | The specified resource ID does not exist. |
429 | Too Many Requests | Rate limit exceeded. Refer to Retry-After header. |
500 | Internal Error | Server-side error. Contact XeCubes support with request_id. |
Interactive Example: Verify Workspace​
- cURL
- Node.js
- Python
- Go
curl -X GET "https://api.xecubes.com/recruiter/bootstrap" \
-H "X-API-Key: xh_live_your_secret_key"
fetch('https://api.xecubes.com/recruiter/bootstrap', {
headers: {
'X-API-Key': 'xh_live_your_secret_key',
'Content-Type': 'application/json'
}
})
.then(res => res.json())
.then(console.log);
import requests
response = requests.get(
"https://api.xecubes.com/recruiter/bootstrap",
headers={"X-API-Key": "xh_live_your_secret_key"}
)
print(response.json())
package main
import (
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.xecubes.com/recruiter/bootstrap", nil)
req.Header.Set("X-API-Key", "xh_live_your_secret_key")
client := &http.Client{}
resp, _ := client.Do(req)
fmt.Println(resp.Status)
}