Documentation Index Fetch the complete documentation index at: https://docs.linkxg.com/llms.txt
Use this file to discover all available pages before exploring further.
LinkXG applies rate limits to protect the platform and ensure fair usage. This guide explains how limits work and how to handle them in your integration.
Types of limits
LinkXG enforces three types of limits:
Type Description Example Rate limits Requests per time window 1,000 API requests per day Resource limits Maximum counts of objects 1,000 active products Capability limits Feature availability Bulk upload enabled/disabled
Limits vary by subscription tier. Higher tiers have higher limits.
Rate limits by tier
API requests
Tier Requests per day Requests per minute Supplier Free Not available — Supplier Plus 10,000 100 Core 50,000 500 Enterprise 200,000 2,000
Authentication endpoints
Authentication endpoints have separate, stricter limits to prevent abuse:
Endpoint Limit /auth/login10 requests per minute per IP /auth/refresh30 requests per minute per token /oauth/token60 requests per minute per client
Resource limits by tier
Resource Supplier Free Supplier Plus Core Enterprise Active products 1,000 5,000 Unlimited Unlimited Connections 3 15 Unlimited Unlimited Users 3 10 25 Unlimited Products under traceability — — 10,000 Unlimited Bulk upload rows/month — 10,000 100,000 Unlimited
Checking your usage
Via API
curl https://api.linkxg.com/api/v1/entitlements/usage \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response:
{
"success" : true ,
"data" : {
"tier" : {
"code" : "CORE" ,
"name" : "LinkXG Core"
},
"limits" : {
"MAX_ACTIVE_PRODUCTS" : {
"current" : 847 ,
"limit" : null ,
"unlimited" : true
},
"MAX_CONNECTIONS" : {
"current" : 12 ,
"limit" : null ,
"unlimited" : true
}
},
"rateLimits" : {
"API_REQUESTS_DAY" : {
"current" : 4521 ,
"limit" : 50000 ,
"resetsAt" : "2026-01-22T00:00:00.000Z"
}
},
"warnings" : []
}
}
Via application
Go to Account > Usage to see your current usage and limits in the application.
API responses include headers showing your rate limit status:
Header Description X-RateLimit-LimitMaximum requests allowed in the window X-RateLimit-RemainingRequests remaining in the current window X-RateLimit-ResetUnix timestamp when the window resets
Example headers:
X-RateLimit-Limit: 50000
X-RateLimit-Remaining: 45479
X-RateLimit-Reset: 1737504000
Handling rate limits
When you exceed a rate limit, the API returns a 429 Too Many Requests response:
{
"error" : "RATE_LIMIT_EXCEEDED" ,
"message" : "API request limit exceeded" ,
"retryAfter" : 3600
}
The Retry-After header indicates how many seconds to wait before retrying.
Best practices
Implement exponential backoff. When you receive a 429, wait before retrying. Double the wait time on each subsequent 429.
async function requestWithBackoff ( url , options , maxRetries = 5 ) {
let delay = 1000 ;
for ( let attempt = 0 ; attempt < maxRetries ; attempt ++ ) {
const response = await fetch ( url , options );
if ( response . status !== 429 ) {
return response ;
}
const retryAfter = response . headers . get ( 'Retry-After' );
const waitTime = retryAfter ? parseInt ( retryAfter ) * 1000 : delay ;
await new Promise ( resolve => setTimeout ( resolve , waitTime ));
delay *= 2 ;
}
throw new Error ( 'Max retries exceeded' );
}
Cache responses where appropriate. If data does not change frequently, cache it locally rather than requesting it repeatedly.
Use pagination efficiently. Request only the data you need. Use smaller page sizes for exploratory queries.
Batch requests where possible. Some endpoints accept batch operations that count as a single request.
Checking permissions before acting
Before attempting an action, you can check whether your current tier allows it:
curl -X POST https://api.linkxg.com/api/v1/entitlements/can \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "BULK_UPLOAD",
"resourceCount": 5000
}'
Response:
{
"success" : true ,
"data" : {
"allowed" : true ,
"reason" : null
}
}
If the action is not allowed:
{
"success" : true ,
"data" : {
"allowed" : false ,
"reason" : "LIMIT_EXCEEDED" ,
"details" : {
"limit" : "BULK_UPLOAD_ROWS_MONTH" ,
"current" : 9500 ,
"requested" : 5000 ,
"available" : 500
}
}
}
Upgrading your limits
If you consistently hit limits, consider upgrading your subscription tier. Go to Account > Subscription or contact sales for enterprise options.
For temporary increases (e.g., a large data migration), contact support to discuss a temporary override.
Next steps
Error handling Understand error responses and handling
API Reference Browse the complete API documentation