রেস্ট এপিআই রেফারেন্স
প্রতিটি এন্ডপয়েন্ট, প্রয়োজনীয় স্কোপ, কার্সর পেজিনেশন এবং চালানোর মতো curl ও টাইপস্ক্রিপ্ট নমুনা।
Version v1 · updated 2026-02-01
The reference below is generated from the same route table the gateway dispatches on. If an endpoint is served, it is documented; if it is documented, it is served. There is no hand-maintained second copy to drift.
Base URL and versioning#
https://api.framique.com/api/public/v1The version lives in the path. Additive changes (a new field, a new endpoint) ship inside v1; anything that could break a client gets a new version and a sunset date announced at least 90 days ahead.
Pagination#
- `limit` is clamped server-side to 100; asking for more is not an error, it is silently capped.
- `cursor` is opaque and signed positionally by (timestamp, id). Do not parse it.
- A tampered cursor is treated as no cursor — you get page one, not a 500.
- `next_cursor` is null on the last page. That is the only end-of-stream signal.
Idempotency#
Every non-GET request must carry an `Idempotency-Key`. Replaying the same key with the same body returns the original response; replaying it with a different body is a 409. Keys are retained for 24 hours.
curl -s -X POST "https://api.framique.com/api/public/v1/products" \
-H "Authorization: Bearer $FRAMIQUE_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"title":"Jamdani saree","price_minor":450000,"currency":"BDT"}'Endpoints#
| Endpoint | Scope | What it does | Samples |
|---|---|---|---|
GET/me | products.read | Identity of the calling credential | |
GET/orders | orders.read | List orders (cursor paginated) | |
GET/orders/{id} | orders.read | Fetch one order | |
POST/orders/{id}/notes | orders.write | Append an order note | |
GET/products | products.read | List products (cursor paginated) | |
GET/products/{id} | products.read | Fetch one product | |
POST/products | products.write | Create a draft product | |
GET/customers | customers.read | List customers (cursor paginated) | |
GET/exports | exports.read | List export jobs | |
POST/exports | exports.write | Start an export job | |
GET/exports/{id} | exports.read | Export job detail + signed URL | |
GET/webhooks | webhooks.read | List webhook endpoints | |
POST/webhooks | webhooks.write | Register a webhook endpoint | |
DELETE/webhooks/{id} | webhooks.write | Delete a webhook endpoint | |
GET/themes | themes.read | List installed themes | |
GET/themes/{id} | themes.read | Fetch one installed theme | |
GET/themes/{id}/assets | themes.read | List a theme's CSS, font and image assets | |
POST/themes/{id}/activate | themes.write | Activate a theme on the storefront | |
GET/marketplace/themes | themes.read | List published marketplace themes |
/productsRead-only, against a demo store. Requires products.read on a real credential.
Same call as curl
curl -s -X GET "https://api.framique.com/api/public/v1/products" \
-H "Authorization: Bearer $FRAMIQUE_API_KEY"