Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.smartcp.org/llms.txt

Use this file to discover all available pages before exploring further.

Base URL

All REST API endpoints are available at:
https://logistics.api.smartcp.org/v1/{endpoint}

Rate Limits

ScopeLimitPeriod
/v1/*100 requests60 sec

How requests are counted

Requests are effectively limited per source IP address. This means:
  • Multiple API keys sent from the same public IP still share the same rate-limit bucket.
  • A single integration sending traffic through one outbound IP can hit the limit across all v1 endpoints combined.
  • The limit is not currently partitioned by bearer token or directory header.

Success-response headers

For requests that are accepted, we add standard rate-limit headers to the response:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
The exact remaining value depends on how many requests have already been made in the current window.

429 Too Many Requests

When the limit is exceeded, the API returns HTTP 429:
{
  "status": 429,
  "error": "Too Many Attempts."
}

Rate-limit headers

Successful responses may include standard rate-limit headers such as:
  • Retry-After
  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset
Clients should not rely on these headers always being present on 429 responses.

Response Schema

All API responses use a consistent top-level JSON envelope:
{
  "status": 200,
  "data": {}
}
For error responses, the envelope switches from data to error:
{
  "status": 422,
  "error": "The nr field is required."
}

Successful responses

{
  "status": 200,
  "data": "<endpoint-specific payload>"
}
Field reference:
  • status is the HTTP status code.
  • data contains the endpoint payload. It can be a number, string, object, array, or null.

Error responses

{
  "status": 401,
  "error": "Authentication failed"
}
Field reference:
  • status is the HTTP status code.
  • error contains the error payload. In most cases it is a string.

HTTP Status Codes

  • 200 OK for successful reads.
  • 201 Created when at least one file was attached successfully.
  • 401 Unauthorized when authentication fails.
  • 404 Not Found when a route or requested order does not exist.
  • 405 Method Not Allowed when the route exists but the HTTP method is wrong.
  • 422 Unprocessable Entity for validation failures and for upload requests where no file could be attached.
  • 429 Too Many Requests when the shared API limiter is exceeded.
  • 500 Internal Server Error for unexpected server-side failures.