# Embeds

> The two ways to put Nodaro inside your own product, a MiniApp that runs a published workflow and the stateless 3D scene viewport, and when to use each one.

Source: https://nodaro.ai/docs/developers/embed

**Embeds** put part of Nodaro inside your own product. There are two, and they solve different problems. The **MiniApp embed** runs a published workflow for your users, and the **3D scene viewport** shows, and optionally edits, a 3D scene without running anything.

## Choose an embed

| | MiniApp | 3D scene viewport |
| --- | --- | --- |
| **What it does** | Runs a published MiniApp: collects the inputs, starts a run and shows the result. | Draws a 3D scene plan: the viewport, playback, the object list, pose editors and the revision history. |
| **How you embed it** | Your own interface on the REST API, or a frame from the MiniApp's embed code. | A frame at `/embed/scene3d`, driven by `postMessage`. |
| **Authentication** | Your own interface uses a personal API token or an OAuth token, kept on your server. The frame acts with the viewer's own Nodaro session. | None. The frame has no session and makes no network call. |
| **Credits** | Every run costs credits, paid by the account the run acts as. | Never. The viewer runs no job. |
| **Where the state lives** | Runs are stored in Nodaro. | Your page keeps the scene. The frame keeps nothing across a reload. |

## When to embed a MiniApp

- You published a workflow as a MiniApp, and your users should run it from your site or your app. See [Apps](https://nodaro.ai/docs/concepts/apps).
- You want your own form and your own styling around the app. Build them on the REST API.
- You want the quickest route. Paste the MiniApp's embed code into your page.

Read [Embed a MiniApp](https://nodaro.ai/docs/developers/embed/miniapps).

## When to embed the 3D scene viewport

- Your product stores 3D scene plans, from [Generate 3D Scene](https://nodaro.ai/docs/nodes/video/generate-3d-scene) and [Edit 3D Scene](https://nodaro.ai/docs/nodes/video/edit-3d-scene) jobs, and your users should see them.
- Your users should play, scrub and select objects in a scene, read-only by default.
- Your users should edit poses, colors and locks, and your page saves each new revision.

Read [Embed the 3D scene viewport](https://nodaro.ai/docs/developers/embed/scene3d), and [3D scene format](https://nodaro.ai/docs/developers/embed/scene3d-format) for the data the viewport draws.

## Both keep tokens out of the browser

Neither embed puts a Nodaro token in your web page. When you build your own MiniApp interface, the token stays on your server. The 3D scene viewport never carries a token in its messages: your page fetches the scene's assets with its own session and sends the bytes.

## Frequently asked questions

### What can I embed from Nodaro?

Two things. A MiniApp, which is a published workflow with a simple form, and the 3D scene viewport, which draws a 3D scene plan that your page sends it.

### Which Nodaro embed runs AI generations?

Only the MiniApp embed. The 3D scene viewport runs nothing, has no session, makes no network call and never spends credits.

### Do I need an API token to embed the 3D scene viewport?

No. The viewport needs no token and no session. Your page sends the scene with postMessage, and fetches any binary assets of the scene with its own session.

### Where does the token live when I build my own interface for a MiniApp?

On your server. Your browser code talks to your server, and your server calls the Nodaro API with the token, so the token never reaches the browser.
