Agents and API
Let an AI assistant or a script create i3dify projects for you. Hand over the files, get back a link.
Available on every plan. Requests are counted per plan, and a project made this way follows the same rules as one made in the dashboard: the free plan keeps the i3dify watermark and the storage quota still applies.
What it is
i3dify turns images and PDFs into 3D pieces you share with a link, in any of its project types: a flipbook, a photo album, a gallery wall, a mockup, a mug, a lanyard and more. You can do that yourself in the dashboard, or let an agent or a script do it for you, through the same tools the product uses internally.
- You describe what you want and point at the files. The agent picks the project type, uploads the pages, creates the project and hands you the link.
- Files never pass through the model. They go straight to your workspace storage, and the tools only move references to them.
- Everything the agent creates shows up in your dashboard, where you keep editing it as usual.
- It is not only for new projects. An agent can also edit and delete projects, build collections, film and edit Studio pieces, and remember facts about your brand.
Four ways in
Pick the one that matches where you already work.
The AI assistant, in the dashboard
A chat inside your workspace, and an AI tab in every editor. Drop files, say what you want, get a link. Nothing to install and nothing to configure. It has its own page: AI assistant.
MCP, for Claude and other assistants
Connect i3dify to Claude Code, Claude.ai, Claude Desktop or any MCP client. You sign in with your i3dify account and the assistant gets the tools.
REST, for scripts
Plain HTTP calls with an API key. Good for build pipelines, batch jobs and anything that runs without a person watching.
The command line, for a folder of files
npx @i3dify/cli import turns a folder with a project.json and your images into a project, with sign-in through the browser (npx @i3dify/cli login) or an API key in I3DIFY_TOKEN. status shows who you are signed in as, and logout signs you out. Good for a build step or a script.
Connect via MCP
MCP is the standard assistants use to call outside tools. i3dify exposes one remote MCP server. You connect once, and from then on the assistant has the same tools the AI assistant in the dashboard uses:
- Projects: detect the right project type for your files, upload them, create a project, add pages or images, change its settings or visibility, read it, list your projects and delete one.
- Collections: create a collection from your projects, change its look and contents, and read it.
- Studio: film a project as a Studio composition, list the compositions and edit one.
- Workspace: list your workspaces, get an overview of one, and remember or forget facts the assistant should keep in mind.
Claude Code
Run this in a terminal, then type /mcp inside Claude Code to sign in:
claude mcp add --transport http i3dify https://i3dify.com/api/mcp
Claude.ai and Claude Desktop
Add a custom connector in the settings and paste this URL:
https://i3dify.com/api/mcp
Cursor
Click the button to add i3dify to Cursor, then sign in when Cursor asks:
Add to CursorOr add it by hand to .cursor/mcp.json:
{
"mcpServers": {
"i3dify": {
"url": "https://i3dify.com/api/mcp"
}
}
}VS Code
Run this in a terminal, then start the server from the MCP list in VS Code to sign in:
code --add-mcp '{"name":"i3dify","type":"http","url":"https://i3dify.com/api/mcp"}'ChatGPT
Turn on developer mode (Settings, Apps and Connectors, Advanced), create a connector with this URL and choose OAuth. Developer mode is only on some ChatGPT plans.
https://i3dify.com/api/mcp
Other MCP clients
Windsurf, Gemini CLI and any client that speaks remote MCP over HTTP: add a server with the URL above. Sign-in is the same OAuth flow.
The consent screen
The first time a client connects, i3dify opens a sign-in page in your browser and asks you to allow that client to act on your account. It uses your normal i3dify login. The client only holds a token of its own, never your password.
Once connected, ask for what you want in plain words: "make a flipbook from this PDF", "turn these screenshots into a phone mockup". If i3dify cannot tell which project type you want, it does not guess: it sends back the candidates and the assistant asks you.
API keys
Scripts and servers cannot open a browser to sign in, so they use an API key. A key belongs to you and starts with i3d_. By default it reaches every workspace you are in; tick Limit to this workspace when you create it to keep it to one.
- Open your account page in the dashboard and go to API keys.
- Click Create API key, give it a name, choose whether to limit it to this workspace and when it expires (never, in 30 days, in 90 days or in a year), and copy it. It is shown only once.
- Send it with every request as a bearer token.
The header looks like this:
Authorization: Bearer i3d_...
Scopes
A key made on the account page gets all four scopes. A key with fewer can only be made by calling POST /api/v1/keys with a scopes list while signed in to i3dify in the browser, because a key cannot create other keys. A call that needs a scope the key does not have fails with 403.
| projects:read | List and read projects, collections, workspaces and what the assistant remembers. |
| projects:write | Create, update and delete projects and collections, and change what the assistant remembers. |
| assets:write | Add pages, images or textures to a project. Asking for upload URLs and reading a job's status work with any key. |
| compositions:write | Create and edit Studio compositions. |
Treat a key like a password. If it leaks, revoke it from the account page and create a new one. The old one stops working right away. The list shows whether each key is active, revoked or expired, and when it was last used.
A minimal REST walkthrough
The API lives under https://i3dify.com/api/v1 and speaks JSON. This is the shortest path from a file on your disk to a shareable link. Your workspace id comes from GET /api/v1/me.
1. Ask for an upload URL
One entry per file, with its name, MIME type and size in bytes. The response has, for each file, a path and a signed uploadUrl that is valid for two hours.
curl -X POST https://i3dify.com/api/v1/uploads \
-H "Authorization: Bearer i3d_..." \
-H "Content-Type: application/json" \
-d '{"workspaceId":"<workspace-id>","files":[{"name":"catalog.pdf","mime":"application/pdf","size":1048576}]}'2. Send the file to that URL
A plain HTTP PUT with the raw bytes and the headers the previous response gave you. The file goes into your workspace storage directly, not through the API.
curl -X PUT "<uploadUrl>" \ -H "Content-Type: application/pdf" \ -H "x-upsert: true" \ --data-binary @catalog.pdf
3. Create the project from the uploaded file
Pass the path from step 1 as a source. i3dify detects the project type from the files (or you set type yourself), stores every page, films a Studio composition and answers with the project, its viewUrl and a jobId. If the detection is not sure, the answer has needsConfirmation: true and nothing is created. Call again with a type. The project is Unlisted unless you pass a visibility, and composition: false skips the Studio composition.
curl -X POST https://i3dify.com/api/v1/projects/from-files \
-H "Authorization: Bearer i3d_..." \
-H "Content-Type: application/json" \
-d '{"workspaceId":"<workspace-id>","sources":[{"path":"<path>"}],"title":"Spring catalog"}'4. Check the project
Read the project at any time. The job field shows the latest processing job with its status (queued, running, done or error) and its progress. When it is done, the viewUrl is ready to share.
curl https://i3dify.com/api/v1/projects/<project-id> \ -H "Authorization: Bearer i3d_..."
Files already on the web skip steps 1 and 2: pass { "url": "https://..." } as the source instead. If you prefer to send the bytes in one go, POST /api/v1/projects/from-files also accepts multipart form data with the files as parts.
Limits
Every request through the AI assistant, MCP, REST or the command line counts against your plan. The per-minute limit is per credential (one key, one connected client), and each kind of call is counted on its own. The monthly requests and the AI tokens are per workspace.
| Plan | Requests per minute | Requests per month | AI tokens per month |
|---|---|---|---|
| Free | 30 | 300 | 25 |
| Pro | 120 | 10,000 | 500 |
| Business | 300 | 50,000 | 1,500 |
| Enterprise | 600 | Unlimited | Unlimited |
- Over the per-minute limit, the API answers 429 with a Retry-After header. When the workspace has used its requests for the month, or has no AI tokens left, calls that change something answer 402 until the next month, a token pack or a plan upgrade.
- Only the AI assistant spends AI tokens. One token is a thousandth of a dollar of model cost. MCP, REST and command line calls spend none, but they still need a balance above zero. The monthly allowance resets at the start of each month (UTC) and does not carry over; packs of 2,000 tokens for $5 are bought on the billing page and never expire.
- The storage quota and the project limit of your plan still apply. A project created by an agent counts like one created by hand.
- The free plan keeps the i3dify watermark on the viewer, the same as in the dashboard.
What is not there yet
- No headless video render. An agent can create a Studio composition and give you its link, but the video itself is rendered in the Studio, in your browser, when you press export.
- No webhooks. To know when a job is done, read the project, or the job at GET /api/v1/jobs/{id}.