Documentation
GET /api/tracking
This founder's orders, and nobody else's.
| Request | GET /api/tracking |
|---|---|
| Authentication | Session cookie required |
| Handler | backend/server.py |
What it does
Scoped to the claims this session holds, through the same claims lookup every other founder-scoped resolver uses, so a product this session does not hold can never surface here. There is no demo order in the data — not flagged, not greyed, not present — because a flag can be dropped by a render or a screenshot and a row that was never created cannot be mistaken for real activity. With no orders it answers 200 and a named state, never a 404 or a bare empty list.
Authentication
Session cookie required. Send the ff_session cookie. Without one the engine treats the caller as a new visitor with no holds and no claims, and returns a new cookie to use from then on.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ff_session | cookie | string | Optional | The session identifier. Omit it on the first call and store the value the response sets; every later call must send the same one or the engine treats the caller as a new visitor with no holds and no claims. |
order_id | query | string | Optional | Look up one order. Scoped before the lookup, so a foreign order id reads identically to an unknown one. |
Request
The cookie jar carries the session between calls. Angle-bracketed values are the parameter types from the table above.
curl -s -b cookies.txt -c cookies.txt \
"https://flowfinds.ai/api/tracking"const res = await fetch("https://flowfinds.ai/api/tracking", {
method: "GET",
credentials: "include",
});
const data = await res.json();import requests
s = requests.Session()
r = s.get("https://flowfinds.ai/api/tracking")
data = r.json()Recorded example
curl -s -b cookies.txt -c cookies.txt \
"$FLOWFINDS_ORIGIN/api/tracking"Responses
200 — Orders exist.
| Field | Type | Description |
|---|---|---|
status | string | `tracked`. |
orders | array | Rows of `order_id`, `product_id`, `placed_at`, `carrier`, `tracking_number` and `events`. |
count | number | How many. |
200 — One order was named and found.
| Field | Type | Description |
|---|---|---|
status | string | `tracked`. |
order | object | The order. |
200 — The named order is unknown or belongs to someone else.
| Field | Type | Description |
|---|---|---|
status | string | `order_not_found`. |
order_id | string | As asked. |
explanation | string | 'We have no order with that number.' |
200 — No orders exist.
| Field | Type | Description |
|---|---|---|
status | string | `no_orders_yet`. |
orders | array | Empty. |
count | number | 0. |
explanation | string | 'No orders yet. Tracking appears here the moment one is placed.' |
Errors
This endpoint has no failure path of its own. An uncaught exception anywhere in the engine is still returned as structured JSON by the shared guard.
Related
GET /api/revenue— Confirmed revenue, per store and per currency.GET /api/satisfaction— The satisfaction sample.GET /api/helpdesk— The support desk: tickets, replies and the agent's state.POST /api/helpdesk— Act on a support ticket.POST /api/support— Ask the support agent a question.GET /api/todos— The operator's task list.POST /api/todos— Add, complete or delete a task.
Back to the API reference index, or read the cookbook for recipes that compose this endpoint with others.