Home / API

API

Bring Store Projects progress into your own system: which step a project has reached, where its goods are, and whether Training is on track. All endpoints are read-only; no registration or API Key is required.

Basic conventions

Base URL
https://www.icook.cloud
Authentication
The endpoints listed on this page do not require any credentials; code-accessible endpoints use the token in the link itself as the credential
Format
JSON (application/json; charset=utf-8); all times are in UTC
Errors
400 invalid parameter · 401 missing access code · 404 not found; the response body has the form {"error":"…"}
Cross-origin requests
No CORS headers are returned — cross-origin calls from browsers are blocked. Call from your server. If direct browser access is necessary, email us with the origin domain.
Rate
There is no hard quota. Cache responsibly; polling Store Projects progress once per minute is sufficient, rather than once per second
Version
There is no version number. Fields are added but not removed; if a breaking change is necessary, known consumers are notified by email in advance

These endpoints power the public pages on this site — the API returns exactly what you see on a project page, no more and no less.

Open data

No credentials are required. Suitable for bringing project progress into your own dashboard.

GET/api/projects

List of active Store Projects. Projects with active status.

FieldDescription
idProject number; path parameter for the other endpoints
name / biz_type / cityProject name · business type · city
statusactive (in progress) · all other values indicate archived states
current_stageThe current step among the nine steps, 1–9
noteOne-sentence public background note
track / cuisineSite-selection Category / menu Category; values are shared with the libraries
submission_countNumber of proposals received (count only, no content)
stage_countsProposal count by stage, in the form { "5": 12 }
created_atProject creation time, UTC

GET/api/projects/:id

Details for a single project. Includes three additional cross-stage status fields beyond the list response.

FieldDescription
…Includes all fields from the list response
opening_status⑨ Opening cycle status term (status only, no operating data)
training_status⑧ Training cycle status term
accepted_countNumber of accepted proposals

Revenue, costs, issues, person responsible, and opening date are not returned as fields at all — this is a design red line, not an omission.

GET/api/projects/:id/sites

The project's shortlist of candidate spaces (the deliverable from ② Site Selection).

FieldDescription
site_idSpace identifier in the Site library; space details are stored in the Site library, and only the reference is stored here
external_title / external_urlTitle and link for a space outside the library
statuspending (pending site visit) · visited (site visited) · chosen (selected) · rejected (rejected)
noteCandidate note

Note: `note` is a public field and is displayed publicly with the project page. Treat notes as public when writing them — do not include your price floor, competitor names, or any assessment that should not be seen.

GET/api/projects/:id/menus

The project's candidate menu shortlist (the deliverable from ① Diagnose). It has the same structure as candidate spaces and stores only menu_id references.

FieldDescription
menu_idMenu identifier in the Menu library
status / noteSame as candidate spaces

GET/api/projects/:id/shipments

The project's shipment progress. Redacted: returns only the number of shipments, their current milestone, arrival date, and carton count.

FieldDescription
idShipment number
cargo_classfood (food) · general (non-food)
transport_modesea_fcl (full container load) · sea_lcl (less than container load) · air (air freight) · ground (US ground delivery)
cold_chainWhether cold chain is used, 0 / 1
statusPacking-list status
nodedepart (departed) · transit (in transit) · arrived (arrived at port) · customs (customs clearance) · final_mile (final mile) · delivered (delivered)
etaEstimated arrival date at port
item_count / carton_totalNumber of item lines / total number of cartons

Only shipments that are finalized or later are returned. Cargo value, HS CODE, delivery address, carrier, and bill of lading number are never returned.

GET/api/projects/:id/training-readiness

The project's ⑧ Training readiness. Aggregated counts only; no roster or personal information.

FieldDescription
started / statusWhether it has started · cycle status term
staffed / plan_totalActual staff count / planned headcount
cert_passed / cert_requiredCertification items passed / certification items required
critical_passed / critical_required / critical_pendingCritical items passed / required / pending
hollowWhether it is in the hollow state where entering only one item displays a perfect score
readyWhether the Training requirements for opening have been met

Completion is calculated against required items, not created rows — therefore `cert_required` is typically much greater than the number of entered rows.

Code-accessible endpoints

The link is the credential. We issue the token with the relevant business link; it cannot be requested publicly — each received link provides access only to its associated document.

GET/api/ticket/:code

Proposal evaluation status. code is the 8-character tracking code shown on the successful submission page.

FieldDescription
title / supplierProposal title / submitting company name
stageAssociated stage, 1–9
statusnew (new submission) · reviewing (under evaluation) · accepted (accepted) · rejected (not accepted)
created_atSubmission time, UTC

The proposal body, quote, and attachments are not returned.

GET/api/quote/:token

Client quote. The token comes from a /q/ link issued by us.

FieldDescription
title / category / stageQuote title · category · stage
quote_amount / quote_currencyClient-facing quoted amount and currency
member_discountMember discount percentage; 0 indicates that no member price tier is set
items[]Item lines: name · spec · unit · qty · sale_price · category · img_url
shipments[]Associated shipment progress (same as above, redacted)

Quotes with an Access code require `?pass=<access-code>`; otherwise, the response is 401. Cost price, markup, and gross margin are never returned.

GET/api/booking/:token

Destination of a logistics packing-list client link. The token comes from a /logistics/f/ link issued by us; packing lists are completed on freight.icook.cloud, and this endpoint returns only the corresponding client link.

FieldDescription
redirectfreight client link, including ?pass= when the correct access code is supplied; null when there is no corresponding packing list
noteExplanation when there is no corresponding packing list

Also supports `?pass=`. Packing-list contents are not returned.

GET/api/booking-share/:token

Destination of a logistics packing-list carrier link. The token comes from a /logistics/s/ link issued by us; this endpoint returns only the corresponding freight carrier link.

FieldDescription
redirectfreight carrier link; null when there is no corresponding packing list
noteExplanation when there is no corresponding packing list; empty when a destination exists

Packing-list contents are not returned.

Try it

curl https://www.icook.cloud/api/projects

# Single project
curl https://www.icook.cloud/api/projects/1

# Shipment progress (redacted)
curl https://www.icook.cloud/api/projects/1/shipments

# Demo tracking code / demo quote (the two used in the guide)
curl https://www.icook.cloud/api/ticket/GUIDE2026
curl https://www.icook.cloud/api/quote/GUIDEQUOTE26

What is not provided

  • There is no public write endpoint. To submit a proposal, apply for membership, complete a packing list, or change quoted quantities, use the web forms — they include necessary abuse-prevention measures, and requests that bypass them and call the endpoints directly are rejected.
  • Proposal content, quoted costs, and client lists are not provided. They are visible only in the admin interface.
  • Employee information is not provided. The Training module does not store data such as identity, address, or salary; it stores only employee numbers and roles.
  • Bulk export is not provided. If you need historical data, email us and explain the intended use.

Need to integrate data, call directly from a browser, or obtain a field not shown here? Email [email protected] with your use case and call volume. Using this API constitutes acceptance of the Terms of Service; see Privacy Policy for data processing.