Getting started
The Syncore API is a JSON REST API for Syncore customers. Use it to read and change your business's products, prices, stock and orders, read invoices, and receive webhooks when something changes.
Every token belongs to one user and sees only the data of that user's business. The business always comes from the token, never from the request.
What you need
- A Syncore account with an active subscription (without one the API answers
402). - A business user (store admin or store user). Platform admin or reseller tokens do not work on the customer API.
1. Create a token
- Sign in to Syncore and open Profile → API tokens.
- Give it a name (e.g. "ERP connection") and pick the abilities your application needs — only those.
- Optional: an expiry date and its own per-minute request limit.
- Create it and copy the token right away. It is shown only once; if you lose it, create a new one and revoke the old one.
Details on abilities and limits: Authentication & limits.
Treat the token like a password: keep it in an environment variable or a secret manager, never in browser code or a public repository.
2. Base URL
https://app.syncore.gr/api/v1
Every request sends the token in the Authorization header and accepts JSON:
Authorization: Bearer <TOKEN>
Accept: application/json
Content-Type: application/json
3. First request
With the token in an environment variable:
export SYNCORE_TOKEN="<TOKEN>"
curl -s "https://app.syncore.gr/api/v1/products?per_page=2" \
-H "Authorization: Bearer $SYNCORE_TOKEN" \
-H "Accept: application/json"
Response (shortened):
{
"data": [
{
"id": 1201,
"sku": "ABC-1001",
"ean": "5200000000001",
"name": "Sample product",
"brand": "Brand",
"supplier": { "id": 7, "name": "Supplier A" },
"base_price": 12.4,
"final_price": 19.9,
"manual_price": false,
"enabled": true,
"supplier_stock": 35,
"variant_count": 0,
"updated_at": "2026-10-29T10:00:00+02:00"
}
],
"meta": { "current_page": 1, "per_page": 2, "total": 340, "last_page": 170 },
"links": { "next": "https://app.syncore.gr/api/v1/products?page=2", "prev": null }
}
Pagination
Lists accept page and per_page (default 25, max 100) and return meta (current_page, per_page, total, last_page) and links (next, prev). Follow links.next until it is null.
Next steps
- Authentication & limits — abilities, rate limits, plan limits.
- Errors — status codes and the error format.
- Webhooks — notifications for orders, stock and feeds.
- API reference — every endpoint.