API Documentation
Complete reference for the RackList product sync API
Authentication
All API requests require an Authorization header with your API key as a Bearer token. API keys start with the rk_ prefix.
Authorization: Bearer YOUR_API_KEY
Key format: rk_ followed by 64 hex characters (67 characters total)
Endpoint
/api/v1/sync/products
Syncs products from your billing system to your RackList listing. Sends an array of products that will be created, updated or deactivated.
Required Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer rk_... | Yes |
| Content-Type | application/json | Yes |
Rate Limits
1 request per 5 minutes per host (sliding window)
Payload Schema
The JSON payload must contain a products array with the following fields for each product:
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Product name |
| external_id | string | Yes | Unique identifier in your billing system |
| category | string | Yes | Product category (e.g. vps_cloud, game_minecraft) |
| price | float | No | Monthly price |
| currency | string | No | Currency (ISO 4217, e.g. EUR, USD) |
| description | string | No | Product description |
| specs | object | No | Technical specifications (key-value) |
| pricing_tiers | array | No | Pricing tiers (period + price) |
| setup_fee | float | No | Setup fee |
| contract_duration | string | No | Contract duration |
| features | array | No | List of included features |
| datacenter_locations | array | No | Datacenter locations |
Payload Example
{
"products": [
{
"name": "VPS Cloud S",
"external_id": "prod_123",
"category": "vps_cloud",
"price": 4.99,
"currency": "EUR",
"description": "1 vCPU, 2GB RAM, 20GB SSD",
"specs": {
"cpu": "1 vCPU",
"ram": "2 GB",
"storage": "20 GB SSD"
},
"pricing_tiers": [
{"period": "monthly", "price": 4.99},
{"period": "yearly", "price": 49.90}
],
"features": ["DDoS Protection", "IPv6"],
"datacenter_locations": ["Paris", "Frankfurt"]
}
]
}
Error Codes
| Code | Description | Error Code |
|---|---|---|
| 401 | Invalid or missing API key | UNAUTHORIZED |
| 403 | API key revoked or inactive | KEY_REVOKED |
| 422 | Invalid payload - validation errors | VALIDATION_FAILED |
| 429 | Too many requests - rate limit exceeded | RATE_LIMITED |
| 500 | Internal server error | INTERNAL_ERROR |
Test Your API Key
Use this cURL command to test your integration:
curl -X POST https://racklist.eu/api/v1/sync/products \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"products": [{"name": "Test Product", "external_id": "test_1", "category": "vps_cloud"}]}'
Replace YOUR_API_KEY with your API key to test.