generated: '2026-08-09'
method: searched
source: https://developers.ceros.com/flex-experience-sdk
docs:
- https://developers.ceros.com/flex-experience-sdk/getting-started
- https://developers.ceros.com/flex-experience-sdk/delivery-modes
- https://developers.ceros.com/flex-experience-sdk/reference/capabilities
- https://developers.ceros.com/plugins
provider: Ceros
summary: >-
Ceros's real developer surface is client-side, not server-side. The Flex Experience SDK is a
browser ES module that reaches into a published experience's rendered components; the embed
surface is an iframe + scroll-proxy pair resolvable via oEmbed; and the CMS connectors package
the same embed for AEM, Contentful and Optimizely. All of it is distinct from the four-operation
REST API.
families:
- family: Flex Experience SDK
kind: browser ES module
loader:
ceros_hosted: "import { connect } from '@ceros/flex-experience-sdk'"
own_page: "import { connect } from 'https://assets.ceros.site/js/flex-experience-sdk.js'"
cdn: https://assets.ceros.site/js/flex-experience-sdk.js
entry_points:
- name: connect
signature: connect(experienceRoot?, options?)
returns: Promise resolving to a Component handle once the experience is ready
- name: wrap
signature: wrap(element)
note: Skips the readiness check; wraps an experience element directly.
- name: SDK_VERSION
note: Exported version constant.
lookup:
- findByLocator()
- findByTag()
capabilities:
- namespace: text
methods: [setText(text), getText()]
- namespace: media
methods: ['play()', 'pause()']
- namespace: states
methods: ['activate(name)', 'deactivate(name)', 'toggle(name)', 'list()', 'current()']
- namespace: visibility
methods: ['show()', 'hide()', 'isHidden()']
- namespace: pages
methods: ['list()', 'current()', 'goTo(page)', 'next()', 'previous()']
delivery_modes:
- name: Standalone / iframe player
note: Experience runs at its published URL or in an iframe; Ceros renders custom head/body HTML; navigation is a full page load. Bare-specifier import via Ceros's import map.
- name: Flex SSR
note: Server-rendered and hydrated into your own page markup; you supply analytics, fonts and meta tags; absolute CDN import.
- name: Flex Inline
note: Renders in a shadow root on a `
` container; in-place page swaps require reconnecting on `flex.page.change`; absolute CDN import.
limits:
- Runtime-only — changes do not persist across reload.
- Published experiences only; does not run in the Flex editor.
- Lookups do not wait and do not stay live; components found earlier are not updated when new content appears.
- Not attached to `window.flexSdk`.
- Cannot add or remove components.
- Requires a 2023-or-later browser (Chrome/Edge 89+, Safari 16.4+, Firefox 108+).
reference: https://developers.ceros.com/flex-experience-sdk/limits
- family: Embed surface
kind: hosted embed markup
produced_by:
- operation: getEmbedCodes
api: Ceros Public API
note: Returns embed snippets plus the URLs they are served from. Flex experiences always return full-height, scrollable and inline snippets and are available before publishing; Legacy experiences must be published and return only the variants their layout supports.
- endpoint: https://view.ceros.com/oembed
note: oEmbed 1.0 provider returning the same responsive embed markup for a public experience URL.
parts:
- name: aspect-ratio wrapper div
note: 'Inline style with padding-bottom percentage and data-aspectRatio.'
- name: iframe.ceros-experience
note: Points at the published experience URL with a heightOverride query parameter.
- name: scroll-proxy.min.js
url: https://view.ceros.com/scroll-proxy.min.js
note: Cross-frame scroll proxy, configured with data-ceros-origin-domains.
export_mode:
note: 'getEmbedCodes accepts `isExport=true` to rewrite viewUrl and assetBaseUrl as paths relative to a self-hosted HTML export. Legacy experiences only.'
- family: CMS connectors
kind: host-platform components
items:
- name: Ceros AEM Connector
platform: Adobe Experience Manager
component: Ceros Flex component (OSGi bundle + content package)
delivery_modes: [Fetch, Store, HTML Import, Inline, Embed]
docs: https://developers.ceros.com/plugins/aem-connector
repository: https://github.com/ceros/ceros-aem-connector
note: With a Flex API key configured, authors can browse the account folder tree and pick an experience instead of pasting a URL — the connector's own use of the Public API.
- name: Ceros Contentful App
platform: Contentful
component: Config screen + entry editor (App Framework)
repository: https://github.com/ceros/ceros-contentful-app
note: Resolves a pasted experience URL through the Ceros oEmbed endpoint and stores title, canonical URL and embed HTML on the entry.
- name: Ceros Optimizely CMS plugin
platform: Optimizely CMS
repository: https://github.com/ceros/ceros-optimizely-cms-plugin
note: No README or tagged release; last pushed 2024-02-01.
- name: Ceros WordPress plugin
platform: WordPress
repository: https://github.com/ceros/ceros-plugin-wordpress
status: referenced-not-public
note: Named in the AEM connector's 0.0.8 changelog entry ("Mirrors the WordPress connector's keyless paste hardening"); the repository is not publicly readable.
- family: Experience plugins
kind: scripts injected into experiences
repository: https://github.com/ceros/ceros-plugins
items:
- name: eloqua
note: Oracle Eloqua tracking.
- name: marketo-munchkin
note: Marketo Munchkin tracking.
- name: soundjs
note: SoundJS audio support.
- name: highlander
note: Single-instance helper.
- family: MarkUp SDK
kind: browser SDK
status: release-candidate
packages: ['@ceros-dev/markup-sdk', '@ceros-dev/markup-sdk-core']
note: >-
Embeds MarkUp commenting and collaboration into a host page. Published to npm 2026-07-23 at
1.0.0-rc.1; the source repo github.com/ceros/ceros-markup is not public and there is no
documentation for it on developers.ceros.com.