Skip to main content
The Embed API returns one Obvlo page as an HTML fragment — no <html>, no header, no footer — so you can place it inside a page your own site already renders. Use it when the surrounding page is yours and only the guide content comes from Obvlo. If you want Obvlo to serve whole pages under your domain instead, use Reverse proxy or Dynamic serving.
Embedding is enabled per domain by Obvlo. Ask your account contact to switch your domain to embed mode — the portal’s Integration tab then generates these snippets pre-filled with your own organisation and site ids.

Choose client-side or server-side

This is an SEO decision, not a preference. Anything you want indexed should use the server-side include.

Client-side script

Paste the container and the loader into your page template. The loader reads its configuration from the container’s data-obvlo-* attributes.
Anything you put inside the container is a fallback: it stays on screen until the guide loads, and stays permanently if the fetch fails. The loader only ever writes on success, so a bad network never blanks the section.

Server-side include

Your server fetches the fragment while rendering, so the guide is in the HTML the crawler receives.
Three properties matter more than the language you write it in, and every version Obvlo generates has all three:
  • A timeout. Obvlo must never hold up your own response.
  • A status check. A 404 body is an error page, not content — never inline it.
  • An empty-string fallback. The page renders without the guide rather than erroring.
The portal also generates NGINX ssi and Node versions of the same include. Open the Integration tab for your site and pick the flavour you need.

The endpoint

The response is an HTML fragment with a text/html content type. It carries no <html>, <head>, <header> or <footer> — those stay yours.
The embed endpoint serves the published version of a page only. A page that has not been published yet returns a 404, which your include should treat as “render without the guide”.

Styling

The fragment ships with the styles it needs, scoped so they do not leak into your page. Your own stylesheet still applies to the surrounding layout, so give the container the width and spacing you want the guide to occupy and let the fragment fill it.

Troubleshooting

The container stays empty

  • Check the browser’s network tab for the /api/embed/content request. A 404 means the org, site or path does not match a published page.
  • Confirm data-obvlo-path is the path inside the Obvlo site, not the URL on your domain.
  • Confirm the page is published, not just built.
Set data-obvlo-base (or the base query parameter) to the path prefix where the guides live on your domain.

The guide is not appearing in search results

You are almost certainly on the client-side script. Move to the server-side include — a crawler that does not execute JavaScript sees only your fallback.

Check the endpoint directly