Site

Site catalogue

Read endpoints for showing a published site's products in your own interface.

GEThttps://app.getera.io/api/site/v1/{siteId}
None (public)
GEThttps://app.getera.io/api/site/v1/{siteId}/products
None (public)
GEThttps://app.getera.io/api/site/v1/{siteId}/products/{id}
None (public)

The site API returns the public data of a published website as JSON: the products, services and free times a visitor can already see. Use it to show the same catalogue in your own mobile app or another front end. Your workspace's internal data is not reachable through this door.

Authentication

None. The site must be published.

Calls from a browser are accepted only from the site's connected domains (CORS); a request from any other domain gets 403 origin_not_allowed. Calls from a server (without an Origin header) are not affected by this check.

Site id

When you open a site from Site › All sites (/sites/all), the address becomes /sites?site=<siteId>; siteId is that value.

Endpoints

PathReturns
/api/site/v1/{siteId}A site summary and the list of available resources.
/api/site/v1/{siteId}/productsActive products, featured first.
/api/site/v1/{siteId}/products/{id}One product and its active variants. The product's short name (slug) works in place of id.

Query parameters (products)

NameTypeRequiredDescription
limitnumberNo1–100, default 24.
qstringNoSearches product names and summaries.

Example

curl "https://app.getera.io/api/site/v1/SITE_ID/products?limit=2&q=coffee"

Response: product list

{
  "data": [
    {
      "id": "a1c2e3f4-0000-4000-8000-000000000040",
      "name": "Filter Coffee 250 g",
      "slug": "filter-coffee-250g",
      "summary": "Medium roast, demo product.",
      "is_featured": true,
      "rating": 4.8,
      "variant_id": "a1c2e3f4-0000-4000-8000-000000000041",
      "variant_name": "250 g",
      "sku": "DEMO-COF-250",
      "price_amount": 240,
      "price_currency": "TRY",
      "prior_price_amount": 280
    }
  ]
}

Response: site summary

{
  "data": {
    "version": "v1",
    "site": { "id": "SITE_ID", "name": "Demo Cafe", "locale": "en" },
    "resources": ["products", "products/{id}", "services", "slots", "bookings", "me/bookings", "me/orders"],
    "audiences": {
      "public": ["products", "services", "slots"],
      "customer": ["bookings", "me/bookings", "me/orders"]
    }
  }
}

Resources in the customer group need the session of a customer signed in to the site; they are not covered here.

Errors

Error bodies look like {"error": {"code": "...", "message": "..."}}.

StatuscodeWhen
403origin_not_allowedA browser call does not come from the site's domains.
404site_not_foundNo such site, or not published.
404not_foundProduct or resource not found.
429rate_limitedRate limit.

Limits

Each IP address may make 600 requests an hour to one site; a site's total is 10,000 requests an hour.

See also Services and free times.