What You Can Retrieve
The base URL is
https://ecosystem.seam.co/v1.
Try It
All published content is public, so you can try the API without a key by naming a manufacturer:manufacturer_slug, because the key implies your brand. From your servers, send a secret key as a bearer token:
Requests
- Every endpoint accepts
GETwith query parameters, orPOSTwith the same parameters as a JSON body. - For list parameters, such as
slugs, repeat the parameter or separate values with commas. - Successful responses include
"ok": true. - The API allows cross-origin requests, so you can call it from a browser with an embed key.
Pagination
Device models are returned in pages, ordered by slug. Setlimit (1–500) to choose the page size. When pagination.has_next_page is true, pass pagination.next_page_cursor as page_cursor to get the next page:
Localization
Capability reports, the text that explains how a capability works for a device, are available in English (en, the default) and French (fr). Set locale to choose one. Unknown locales fall back to English, and the response reports the locale it used.
Compression and Caching
- Responses are compressed with Brotli or gzip when your client sends
Accept-Encoding. A large manufacturer’s content is several megabytes uncompressed and about a tenth of that compressed, so always request compression. With curl, use--compressed. - Responses to anonymous and embed-key requests can be cached by shared caches such as CDNs for five minutes (
Cache-Control: public, s-maxage=300, stale-while-revalidate=86400). They include anETag, so you can sendIf-None-Matchto get304 Not Modifiedwhen nothing has changed. - Responses to secret-key requests are never cached (
Cache-Control: no-store), because they can include data that is not public. Cache them on your own servers if you need to.
Rate Limits
The API limits how many requests you can make per minute:- Anonymous requests are limited per client IP address.
- Embed-key requests are limited per key and per visitor IP address, so one visitor cannot use up your page’s budget.
- Secret-key requests are limited per key.
429 with the error type rate_limited and a Retry-After header with the number of seconds to wait. The error’s data.limit_per_minute shows the limit that applied.
Errors
Errors return a non-2xx status and a JSON body:
Include the
request_id when you contact Seam about an error.
Next Steps
- Get your keys in Keys and Authentication.
- Read your brand’s content with Get Manufacturer Content.
- Embed your device list on your website with Supported Devices.