Compatible Apps
<seam-compatible-apps> lists the apps that work with a device category, manufacturer, provider, or capability through Seam.Supported Devices
<seam-supported-devices> lists the device models that work with Seam, with capability badges, search, and filters.@seamapi/react 5.1.0 and later. Try them with sample data in the interactive component library.
Before You Begin
To embed the components, you need an embed key from Seam. Embed keys start witheco_live_.
Email support@getseam.com and include:
- Your company, and whether you are a device manufacturer or an app that integrates with Seam.
- Every origin you plan to embed the components on.
Send full origins, including the scheme and any non-default port, not bare hostnames. Seam matches them against the browser’s Wildcards are supported, so
Origin header, so example.com matches nothing while https://example.com matches. Include every environment you embed on:https://*.preview.example.com covers your preview subdomains. Seam adds http://localhost and http://127.0.0.1 on any port to every key, so the components also work on your development server.How the Embed Key Works
An embed key is not a Seam API key and carries no account access. It identifies your embed, and it only works on the origins registered for it.- A request from a registered origin succeeds.
- A request from any other origin fails with
403 origin_not_allowed. - Matching is on the whole origin, scheme included.
https://example.comandhttp://example.comare different origins, and so arehttps://example.comandhttps://www.example.com.
- Manufacturer key: Supported Devices defaults to your brand’s devices, so you can drop it on a product page without any other attributes.
- App (partner) key: Supported Devices hides the manufacturers, device types, and providers you have told Seam you do not support.
Add the Components to Your Site
- Plain HTML
- React
- Vue
- Angular
Load
ecosystem.js from the Seam CDN, then place the elements anywhere on the page.ecosystem.js contains only the two Ecosystem Components, without the Seam API client, so it stays small (about 66 kB gzipped). If your page already loads elements.js for other Seam Components, it defines these elements too, so you do not need both.Pin an explicit version in production so a new release cannot change your page unexpectedly. To upgrade, change the version in the URL. See the releases for available versions.Boolean attributes work with or without a value: hide-search and hide-search="true" are equivalent, and hide-search="false" turns the option off.Shared Attributes
Both components accept these attributes in addition to their own. In React, use the camel-cased prop name onEcosystemProvider (or SeamProvider), except for className, which goes on the component itself.
Dark Mode
Settheme on each component:
light(default) always renders the light theme.darkalways renders the dark theme.autofollows the visitor’s operating system or browser color scheme (prefers-color-scheme).
theme to light or dark from it instead of using auto. The components use a light-on-dark logo variant in the dark theme when one is available.
Styles and Fonts
By default, each component adds two stylesheets to the page’s<head>: the Seam Components CSS from https://react.seam.co and the Source Sans Pro font from Google Fonts. The components fall back to your system sans-serif font if the font does not load.
To host the CSS yourself, set disable-css-injection and either import it with your bundler or link to it, matching the version you load:
seam-. Use class-name to add your own class to a component’s container. The seam- class names themselves are not a stable API and may change between releases.
Content Security Policy
If your site sets a Content Security Policy (CSP), allow the following sources:
For example, with the default settings:
Troubleshooting
When a request fails, the component shows a message in place of the list. The Seam Ecosystem API returns an errortype that you can see in your browser’s network tab.
An embed key is required to show this list on this website
An embed key is required to show this list on this website
The API returned
401 embed_key_required. The component has no embed-key, and the page is not on a Seam-owned domain. Add embed-key to the element, or embedKey to the provider in React.The embed key is invalid or has been revoked
The embed key is invalid or has been revoked
The API returned
401 invalid_embed_key. Check for a truncated or misquoted value, and confirm you are using the eco_live_ embed key Seam sent you rather than a Seam publishable key or API key. If the key was revoked, email support@getseam.com for a new one.The embed key is not allowed on this website
The embed key is not allowed on this website
The API returned
403 origin_not_allowed. The origin serving the page is not registered for your key. Check the scheme, the www. prefix, and the port, then email support@getseam.com with the exact origin to have it added.Nothing renders at all
Nothing renders at all
Confirm that the script tag includes
type="module" and that the CDN URL loads. Custom elements upgrade once their definition loads, so a blocked or misspelled script URL leaves the element on the page with nothing inside it. If your site sets a CSP, check the browser console for blocked requests and see Content Security Policy.The component renders without styles
The component renders without styles
The stylesheet from
https://react.seam.co did not load. Allow it in your CSP’s style-src, or set disable-css-injection and load the CSS yourself.An app or device is missing, or its details look wrong
An app or device is missing, or its details look wrong
The components show live data from the Seam Ecosystem. To report a missing app or device, or incorrect details, email support@getseam.com.
Next Steps
- Set up Compatible Apps or Supported Devices.
- Try both components with sample data in the interactive component library.
- Run the plain HTML sample app.