Articles on: For developers
This article is also available in:

Working with the API

Pricer24 provides a REST API for programmatic interaction with your internal systems, enterprise ERPs, eCommerce backends, and BI platforms.


Please note that API access is subject to your subscription plan.


General Information


  • Base URL: https://api.pricer24.com/v1/
  • Architecture: RESTful
  • Data Format: JSON (for all requests and responses)
  • Interactive Documentation: Explore all available endpoints and execute test calls directly in our Swagger UI


Rate Limits & Constraints

  • Rate Limit: Up to 10 requests per second. Exceeding this threshold returns HTTP status 429 Too Many Requests.
  • Execution Timeout: 60 seconds per request.
  • Temporary Lockout: Receiving 3 consecutive client error responses (HTTP 4xx codes) within 60 seconds triggers an automated 30-second lockout for the API key.


Authentication


All API requests require a valid API key.


You can supply the key in one of two ways:

  1. HTTP Header (recommended):

X-ApiKey: YOUR_API_KEY or Authorization: Bearer YOUR_API_KEY

  1. Query Parameter:

https://api.pricer24.com/v1/{resource}?ApiKey=YOUR_API_KEY


How to Generate an API Key


We strongly recommend creating a dedicated service user account for API integrations rather than sharing personal admin credentials.


  1. In the Pricer24 navigation menu, go to: Settings → Company → Users
  2. Click Create and name the user (e.g., "API Integration Service")
  3. Open the newly created user, navigate to the Roles tab, and assign the required access permissions
  4. Switch to the API Keys tab and click Create
  5. The API key is generated and copied to your clipboard. Store it securely in your environment variables


Pagination


Most list endpoints support page-based traversal via query parameters:

  • MaxResultCount — Number of records returned per page (default is 10, maximum is 1000)
  • SkipCount — Number of records to skip from the beginning


The total count of matching records is always returned in result.totalCount.


{
  "success": true,
  "result": {
    "totalCount": 2700,
    "items": [ ... ]
  },
  "error": null
}


Page Calculation Formula

To request a specific page number:
SkipCount = PageSize * (PageNumber - 1)


Total pages: Ceil(totalCount / PageSize)


Example: Fetching 2,700 items in batches of 1,000:

  1. GET /v1/{resource}?SkipCount=0&MaxResultCount=1000 — fetches records 1–1,000
  2. GET /v1/{resource}?SkipCount=1000&MaxResultCount=1000 — fetches records 1,001–2,000
  3. GET /v1/{resource}?SkipCount=2000&MaxResultCount=1000 — fetches remaining records 2,001–2,700


The Include Parameter (Payload Optimization)


To minimize network bandwidth, endpoints return compact object representations by default.


To expand nested relationships, pass the Include query parameter containing a comma-separated list of child entities:


  • Basic Request (without Include):

GET `https://api.pricer24.com/v1/contractors`

{
  "id": "c100",
  "name": "Rozetka",
  "contractorPriceTypes": null,
  "contractorWarehouses": null
}


  • Expanded Request (with Include):

GET `https://api.pricer24.com/v1/contractors?Include=PriceTypes,Warehouses`

{
  "id": "c100",
  "name": "Rozetka",
  "contractorPriceTypes": [
    { "id": "p1", "name": "Retail Price" }
  ],
  "contractorWarehouses": [
    { "id": "w1", "name": "Central Warehouse" }
  ]
}


HTTP Status Codes & Error Handling


Pricer24 returns standard HTTP status codes:

  • 200 OK — Request completed successfully
  • 400 Bad Request — Invalid request syntax or invalid parameters (e.g., MaxResultCount > 1000)
  • 401 Unauthorized — Missing or invalid API key
  • 403 Forbidden — Insufficient permissions or feature unavailable on your subscription plan
  • 404 Not Found — Requested resource or endpoint does not exist
  • 429 Too Many Requests — Rate limit exceeded (>10 req/s) or temporary lockout active
  • 500 Internal Server Error — Unexpected server error


Standard Response Envelope

All API responses use a consistent JSON envelope:


Successful Response:

{
  "success": true,
  "result": { ... },
  "error": null
}


Error Response:

{
  "success": false,
  "result": null,
  "error": {
    "code": 400,
    "message": "Parameter MaxResultCount cannot exceed 1000",
    "details": "Validation failed for MaxResultCount"
  }
}


Next Steps


Updated on: 04/11/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!