Price data API — access monitoring data from your own systems
The 4pricing.net REST API lets your technical team pull price monitoring data into your own systems (for example an ERP, WMS or online shop). 4pricing does not offer ready-made connectors: your developer builds the link on top of the API. Authentication uses an API key, responses are standard JSON, and the specification is published as OpenAPI 3.0, which you can import straight into your client.
Main endpoints
The API exposes monitoring data at tracked-product level: the product list with its current price, the price history of one product, and a bulk mini-history for list views. Products are identified by the product_id returned when you add them — it is the route key. Amounts come in minor units, in the current_price_cents and price_cents fields, together with the currency, and every record carries the exact time of the check (last_scraped_at and scraped_at respectively).
- GET /products/ — your tracked products, with current price and currency
- GET /products/{product_id}/history — the price history of one product, with timestamps
- GET /products/sparklines — bulk mini-history, one row of prices per product
- POST /alerts/ — create an alert (threshold, percentage drop, stock, competitor)
Authentication and rate limiting
Authentication uses the X-API-Key header or, equivalently, Authorization: Bearer with the same key. Keys are generated from the panel, in the API & keys section, and the full value is shown only once, at creation. The rate limit is 60 requests per minute per account, shared by all your keys; above it the API answers 429 and sends the Retry-After header.
Pros and cons
Pros
- Your team can feed your own ERP/WMS straight from the API, without manual CSV export (you build the connector yourself)
- Alerts can be delivered by signed webhook, so you are not forced to poll
- A published OpenAPI 3.0 specification you import straight into your client
- Access to the recommended price for the comparison group, not just raw data
Limitations
- The 60 requests/minute per-account rate limit (shared by all keys) calls for bulk reads and local caching on large catalogues
- The webhook requires a public http/https URL (port 80/443) on your infrastructure
Quick verdict
The API covers reading monitoring data and the recommended price, pushing your own prices and applying the recommended price, but it does not come with ERP or shop connectors. Large catalogues benefit from bulk reads (pagination, bulk mini-history) and local caching.
Specifications table
| Endpoint | Method | Response |
|---|---|---|
| /products/ | GET | JSON array of tracked products, with current_price_cents |
| /products/{product_id}/history | GET | JSON array history with timestamps |
| /products/sparklines | GET | JSON with one row of prices per product |
| /alerts/ | POST | The created alert, with its type and threshold |
API vs. on-demand CSV export
| Criterion | REST API | CSV export |
|---|---|---|
| Data latency | Data is as old as the last check | Data as of the moment you download |
| Connecting to an ERP | Over HTTP, with a connector your team writes | Manual/cron import |
| Push alerts | Yes (webhook) | No |
Frequently asked questions
How do I get an API key?
You generate the key from your 4pricing.net account panel, in the API & keys section. The full key value is shown only once, at creation — if you lose it, revoke the key and generate another.
Can I access data for all products simultaneously?
Yes, GET /products/?skip=0&limit=200 lets you page through the whole tracked catalogue; the total row count comes in the X-Total-Count header. For long lists, GET /products/sparklines returns the mini-history of several products in a single call. We recommend an overnight sync for large catalogues and more frequent reads only for the products that matter.
What format does the price history returned by the API have?
A JSON array of {product_id, price_cents, currency, in_stock, scraped_at} objects, ordered descending by date. The price comes in minor units (price_cents), not in whole currency, and scraped_at is an exact ISO 8601 timestamp.
Which events does the webhook send?
There is one webhook URL per account, and it receives every alert type you create: price below a threshold, price above a threshold, percentage drop, back in stock, a competitor undercutting you, and loss of the lowest-price position. There is no alert on the cost floor as such.