diff --git a/build-with-ai.mdx b/build-with-ai.mdx
new file mode 100644
index 0000000..a94efa1
--- /dev/null
+++ b/build-with-ai.mdx
@@ -0,0 +1,113 @@
+---
+title: "Let your AI agent integrate the API"
+sidebarTitle: "Build with AI"
+description: "Add media processing to your app by handing your AI agent one prompt. Open it in ChatGPT or Cursor, paste it into Claude, or save it as a repo rule."
+icon: "robot"
+keywords: ["ai integration prompt", "cursor rules", "claude md", "copilot instructions", "chatgpt prompt", "agent skills", "integrate with ai agent"]
+canonical: "https://rendobar.com/docs/build-with-ai"
+---
+
+
+
+Your coding agent can do the whole integration: install the [SDK](/sdk), wire the key from env, submit a job, and verify the result. Paste this into any agent that can fetch a URL:
+
+```text
+Add Rendobar to my app: read and follow https://rendobar.com/prompts/integrate.md
+```
+
+The hosted prompt at [rendobar.com/prompts/integrate.md](https://rendobar.com/prompts/integrate.md) is the same text as the block below and stays current.
+
+## The full prompt
+
+Agent can't fetch URLs? Copy the whole prompt instead:
+
+{/* Prompt source of truth: packages/shared/src/constants/integration-prompt.ts in the
+ rendobar/rendobar repo (buildIntegrationPrompt). Edit there first, then mirror the
+ exact output here and regenerate the deep-link URLs below. */}
+
+```md
+# Add Rendobar to this project
+
+You are integrating Rendobar (https://rendobar.com), a media processing and AI generation API, into this codebase. These instructions supersede anything you remember about Rendobar. Work from the live sources below, not from memory.
+
+Live sources of truth:
+- Job catalog: GET https://api.rendobar.com/jobs/types (public, no auth). Per-type parameters: GET https://api.rendobar.com/jobs/types/{type}/schema
+- OpenAPI 3.1 spec: https://api.rendobar.com/openapi.json
+- Capability map: https://rendobar.com/llms.txt
+- Docs text for AI: https://rendobar.com/docs/llms-full.txt (human docs at https://rendobar.com/docs)
+- Error reference: https://rendobar.com/docs/support/errors
+
+API key rules, follow exactly:
+- I created an API key in the Rendobar dashboard. Ask me to put it in this project's env as RENDOBAR_API_KEY, in a gitignored env file, and wait for my confirmation before running anything that calls the API.
+- Never ask me to paste the key into this chat. Never print, log, or commit it. Never put it in client-side code.
+
+Step 0, detect the stack before writing code:
+- Inspect the project (package.json, requirements.txt, go.mod, composer.json, Gemfile). JavaScript or TypeScript: use the official SDK, @rendobar/sdk. Anything else: call the REST API directly using the OpenAPI spec above. Same endpoints, same shapes.
+- If the project is empty, ask me which stack I want.
+
+Steps (SDK path; mirror with plain HTTP on the REST path):
+1. Install @rendobar/sdk. Create the client with createClient({ apiKey: process.env.RENDOBAR_API_KEY }).
+2. Read the live job catalog and pick the job types this project needs from what it actually lists. Do not invent job types or parameters.
+3. Submit with client.jobs.create({ type, inputs, params }). Media inputs are URLs. Pass an idempotencyKey anywhere a retry could double-submit.
+4. Results: client.jobs.wait(job.id) is fine for scripts. For a production server, use webhooks: ask me to add an endpoint at https://app.rendobar.com/webhooks, then verify signatures with verifyWebhook from "@rendobar/sdk/webhooks".
+5. Handle errors by machine code (error.code), never message text. INSUFFICIENT_CREDITS: tell me to top up at https://app.rendobar.com/billing. RATE_LIMITED: retry with backoff. Full list in the error reference.
+6. Local files: upload through the assets flow (POST https://api.rendobar.com/assets, documented in the docs), then pass the returned asset url as the job input.
+7. Definition of done: a runnable check that submits an ffprobe job on https://cdn.rendobar.com/assets/examples/sample.mp4 and prints the result. Show me the one command that runs it. A 401 means the key is not reaching the process env.
+
+Hard rules:
+- The API base is https://api.rendobar.com with no version prefix. There is no batch endpoint. One job produces one output.
+- Additive changes only. Do not refactor or remove unrelated code.
+- When something is ambiguous, choose the smallest default that keeps the app compiling and tell me what you chose. Ask me only when it is a product decision.
+
+If I am talking to you inside an MCP-capable client (Claude, Cursor, and others), also offer to connect Rendobar's MCP server for running jobs in conversation: https://api.rendobar.com/mcp over OAuth, or npx -y @rendobar/mcp with the key read from env. That is separate from the codebase integration above.
+```
+
+## Open it in one click
+
+{/* The deep-link URLs embed the full prompt above, URL-encoded with encodeURIComponent.
+ Regenerate them whenever integration-prompt.ts changes. */}
+
+- [Open in ChatGPT](https://chatgpt.com/?q=%23%20Add%20Rendobar%20to%20this%20project%0A%0AYou%20are%20integrating%20Rendobar%20(https%3A%2F%2Frendobar.com)%2C%20a%20media%20processing%20and%20AI%20generation%20API%2C%20into%20this%20codebase.%20These%20instructions%20supersede%20anything%20you%20remember%20about%20Rendobar.%20Work%20from%20the%20live%20sources%20below%2C%20not%20from%20memory.%0A%0ALive%20sources%20of%20truth%3A%0A-%20Job%20catalog%3A%20GET%20https%3A%2F%2Fapi.rendobar.com%2Fjobs%2Ftypes%20(public%2C%20no%20auth).%20Per-type%20parameters%3A%20GET%20https%3A%2F%2Fapi.rendobar.com%2Fjobs%2Ftypes%2F%7Btype%7D%2Fschema%0A-%20OpenAPI%203.1%20spec%3A%20https%3A%2F%2Fapi.rendobar.com%2Fopenapi.json%0A-%20Capability%20map%3A%20https%3A%2F%2Frendobar.com%2Fllms.txt%0A-%20Docs%20text%20for%20AI%3A%20https%3A%2F%2Frendobar.com%2Fdocs%2Fllms-full.txt%20(human%20docs%20at%20https%3A%2F%2Frendobar.com%2Fdocs)%0A-%20Error%20reference%3A%20https%3A%2F%2Frendobar.com%2Fdocs%2Fsupport%2Ferrors%0A%0AAPI%20key%20rules%2C%20follow%20exactly%3A%0A-%20I%20created%20an%20API%20key%20in%20the%20Rendobar%20dashboard.%20Ask%20me%20to%20put%20it%20in%20this%20project's%20env%20as%20RENDOBAR_API_KEY%2C%20in%20a%20gitignored%20env%20file%2C%20and%20wait%20for%20my%20confirmation%20before%20running%20anything%20that%20calls%20the%20API.%0A-%20Never%20ask%20me%20to%20paste%20the%20key%20into%20this%20chat.%20Never%20print%2C%20log%2C%20or%20commit%20it.%20Never%20put%20it%20in%20client-side%20code.%0A%0AStep%200%2C%20detect%20the%20stack%20before%20writing%20code%3A%0A-%20Inspect%20the%20project%20(package.json%2C%20requirements.txt%2C%20go.mod%2C%20composer.json%2C%20Gemfile).%20JavaScript%20or%20TypeScript%3A%20use%20the%20official%20SDK%2C%20%40rendobar%2Fsdk.%20Anything%20else%3A%20call%20the%20REST%20API%20directly%20using%20the%20OpenAPI%20spec%20above.%20Same%20endpoints%2C%20same%20shapes.%0A-%20If%20the%20project%20is%20empty%2C%20ask%20me%20which%20stack%20I%20want.%0A%0ASteps%20(SDK%20path%3B%20mirror%20with%20plain%20HTTP%20on%20the%20REST%20path)%3A%0A1.%20Install%20%40rendobar%2Fsdk.%20Create%20the%20client%20with%20createClient(%7B%20apiKey%3A%20process.env.RENDOBAR_API_KEY%20%7D).%0A2.%20Read%20the%20live%20job%20catalog%20and%20pick%20the%20job%20types%20this%20project%20needs%20from%20what%20it%20actually%20lists.%20Do%20not%20invent%20job%20types%20or%20parameters.%0A3.%20Submit%20with%20client.jobs.create(%7B%20type%2C%20inputs%2C%20params%20%7D).%20Media%20inputs%20are%20URLs.%20Pass%20an%20idempotencyKey%20anywhere%20a%20retry%20could%20double-submit.%0A4.%20Results%3A%20client.jobs.wait(job.id)%20is%20fine%20for%20scripts.%20For%20a%20production%20server%2C%20use%20webhooks%3A%20ask%20me%20to%20add%20an%20endpoint%20at%20https%3A%2F%2Fapp.rendobar.com%2Fwebhooks%2C%20then%20verify%20signatures%20with%20verifyWebhook%20from%20%22%40rendobar%2Fsdk%2Fwebhooks%22.%0A5.%20Handle%20errors%20by%20machine%20code%20(error.code)%2C%20never%20message%20text.%20INSUFFICIENT_CREDITS%3A%20tell%20me%20to%20top%20up%20at%20https%3A%2F%2Fapp.rendobar.com%2Fbilling.%20RATE_LIMITED%3A%20retry%20with%20backoff.%20Full%20list%20in%20the%20error%20reference.%0A6.%20Local%20files%3A%20upload%20through%20the%20assets%20flow%20(POST%20https%3A%2F%2Fapi.rendobar.com%2Fassets%2C%20documented%20in%20the%20docs)%2C%20then%20pass%20the%20returned%20asset%20url%20as%20the%20job%20input.%0A7.%20Definition%20of%20done%3A%20a%20runnable%20check%20that%20submits%20an%20ffprobe%20job%20on%20https%3A%2F%2Fcdn.rendobar.com%2Fassets%2Fexamples%2Fsample.mp4%20and%20prints%20the%20result.%20Show%20me%20the%20one%20command%20that%20runs%20it.%20A%20401%20means%20the%20key%20is%20not%20reaching%20the%20process%20env.%0A%0AHard%20rules%3A%0A-%20The%20API%20base%20is%20https%3A%2F%2Fapi.rendobar.com%20with%20no%20version%20prefix.%20There%20is%20no%20batch%20endpoint.%20One%20job%20produces%20one%20output.%0A-%20Additive%20changes%20only.%20Do%20not%20refactor%20or%20remove%20unrelated%20code.%0A-%20When%20something%20is%20ambiguous%2C%20choose%20the%20smallest%20default%20that%20keeps%20the%20app%20compiling%20and%20tell%20me%20what%20you%20chose.%20Ask%20me%20only%20when%20it%20is%20a%20product%20decision.%0A%0AIf%20I%20am%20talking%20to%20you%20inside%20an%20MCP-capable%20client%20(Claude%2C%20Cursor%2C%20and%20others)%2C%20also%20offer%20to%20connect%20Rendobar's%20MCP%20server%20for%20running%20jobs%20in%20conversation%3A%20https%3A%2F%2Fapi.rendobar.com%2Fmcp%20over%20OAuth%2C%20or%20npx%20-y%20%40rendobar%2Fmcp%20with%20the%20key%20read%20from%20env.%20That%20is%20separate%20from%20the%20codebase%20integration%20above.) submits the prompt as soon as the page loads.
+- [Open in Cursor](https://cursor.com/link/prompt?text=%23%20Add%20Rendobar%20to%20this%20project%0A%0AYou%20are%20integrating%20Rendobar%20(https%3A%2F%2Frendobar.com)%2C%20a%20media%20processing%20and%20AI%20generation%20API%2C%20into%20this%20codebase.%20These%20instructions%20supersede%20anything%20you%20remember%20about%20Rendobar.%20Work%20from%20the%20live%20sources%20below%2C%20not%20from%20memory.%0A%0ALive%20sources%20of%20truth%3A%0A-%20Job%20catalog%3A%20GET%20https%3A%2F%2Fapi.rendobar.com%2Fjobs%2Ftypes%20(public%2C%20no%20auth).%20Per-type%20parameters%3A%20GET%20https%3A%2F%2Fapi.rendobar.com%2Fjobs%2Ftypes%2F%7Btype%7D%2Fschema%0A-%20OpenAPI%203.1%20spec%3A%20https%3A%2F%2Fapi.rendobar.com%2Fopenapi.json%0A-%20Capability%20map%3A%20https%3A%2F%2Frendobar.com%2Fllms.txt%0A-%20Docs%20text%20for%20AI%3A%20https%3A%2F%2Frendobar.com%2Fdocs%2Fllms-full.txt%20(human%20docs%20at%20https%3A%2F%2Frendobar.com%2Fdocs)%0A-%20Error%20reference%3A%20https%3A%2F%2Frendobar.com%2Fdocs%2Fsupport%2Ferrors%0A%0AAPI%20key%20rules%2C%20follow%20exactly%3A%0A-%20I%20created%20an%20API%20key%20in%20the%20Rendobar%20dashboard.%20Ask%20me%20to%20put%20it%20in%20this%20project's%20env%20as%20RENDOBAR_API_KEY%2C%20in%20a%20gitignored%20env%20file%2C%20and%20wait%20for%20my%20confirmation%20before%20running%20anything%20that%20calls%20the%20API.%0A-%20Never%20ask%20me%20to%20paste%20the%20key%20into%20this%20chat.%20Never%20print%2C%20log%2C%20or%20commit%20it.%20Never%20put%20it%20in%20client-side%20code.%0A%0AStep%200%2C%20detect%20the%20stack%20before%20writing%20code%3A%0A-%20Inspect%20the%20project%20(package.json%2C%20requirements.txt%2C%20go.mod%2C%20composer.json%2C%20Gemfile).%20JavaScript%20or%20TypeScript%3A%20use%20the%20official%20SDK%2C%20%40rendobar%2Fsdk.%20Anything%20else%3A%20call%20the%20REST%20API%20directly%20using%20the%20OpenAPI%20spec%20above.%20Same%20endpoints%2C%20same%20shapes.%0A-%20If%20the%20project%20is%20empty%2C%20ask%20me%20which%20stack%20I%20want.%0A%0ASteps%20(SDK%20path%3B%20mirror%20with%20plain%20HTTP%20on%20the%20REST%20path)%3A%0A1.%20Install%20%40rendobar%2Fsdk.%20Create%20the%20client%20with%20createClient(%7B%20apiKey%3A%20process.env.RENDOBAR_API_KEY%20%7D).%0A2.%20Read%20the%20live%20job%20catalog%20and%20pick%20the%20job%20types%20this%20project%20needs%20from%20what%20it%20actually%20lists.%20Do%20not%20invent%20job%20types%20or%20parameters.%0A3.%20Submit%20with%20client.jobs.create(%7B%20type%2C%20inputs%2C%20params%20%7D).%20Media%20inputs%20are%20URLs.%20Pass%20an%20idempotencyKey%20anywhere%20a%20retry%20could%20double-submit.%0A4.%20Results%3A%20client.jobs.wait(job.id)%20is%20fine%20for%20scripts.%20For%20a%20production%20server%2C%20use%20webhooks%3A%20ask%20me%20to%20add%20an%20endpoint%20at%20https%3A%2F%2Fapp.rendobar.com%2Fwebhooks%2C%20then%20verify%20signatures%20with%20verifyWebhook%20from%20%22%40rendobar%2Fsdk%2Fwebhooks%22.%0A5.%20Handle%20errors%20by%20machine%20code%20(error.code)%2C%20never%20message%20text.%20INSUFFICIENT_CREDITS%3A%20tell%20me%20to%20top%20up%20at%20https%3A%2F%2Fapp.rendobar.com%2Fbilling.%20RATE_LIMITED%3A%20retry%20with%20backoff.%20Full%20list%20in%20the%20error%20reference.%0A6.%20Local%20files%3A%20upload%20through%20the%20assets%20flow%20(POST%20https%3A%2F%2Fapi.rendobar.com%2Fassets%2C%20documented%20in%20the%20docs)%2C%20then%20pass%20the%20returned%20asset%20url%20as%20the%20job%20input.%0A7.%20Definition%20of%20done%3A%20a%20runnable%20check%20that%20submits%20an%20ffprobe%20job%20on%20https%3A%2F%2Fcdn.rendobar.com%2Fassets%2Fexamples%2Fsample.mp4%20and%20prints%20the%20result.%20Show%20me%20the%20one%20command%20that%20runs%20it.%20A%20401%20means%20the%20key%20is%20not%20reaching%20the%20process%20env.%0A%0AHard%20rules%3A%0A-%20The%20API%20base%20is%20https%3A%2F%2Fapi.rendobar.com%20with%20no%20version%20prefix.%20There%20is%20no%20batch%20endpoint.%20One%20job%20produces%20one%20output.%0A-%20Additive%20changes%20only.%20Do%20not%20refactor%20or%20remove%20unrelated%20code.%0A-%20When%20something%20is%20ambiguous%2C%20choose%20the%20smallest%20default%20that%20keeps%20the%20app%20compiling%20and%20tell%20me%20what%20you%20chose.%20Ask%20me%20only%20when%20it%20is%20a%20product%20decision.%0A%0AIf%20I%20am%20talking%20to%20you%20inside%20an%20MCP-capable%20client%20(Claude%2C%20Cursor%2C%20and%20others)%2C%20also%20offer%20to%20connect%20Rendobar's%20MCP%20server%20for%20running%20jobs%20in%20conversation%3A%20https%3A%2F%2Fapi.rendobar.com%2Fmcp%20over%20OAuth%2C%20or%20npx%20-y%20%40rendobar%2Fmcp%20with%20the%20key%20read%20from%20env.%20That%20is%20separate%20from%20the%20codebase%20integration%20above.) loads the prompt into the agent. Review it, then run.
+
+Claude has no prefill link. In claude.ai or Claude Code, paste the prompt above, or connect the hosted [MCP server](/mcp-server) at `https://api.rendobar.com/mcp` over OAuth to run jobs straight from the conversation.
+
+## Keep it in your repo
+
+Save the prompt as an agent rule so the context survives past the first session:
+
+- Cursor: `.cursor/rules/rendobar.md`
+- Claude Code: add it to `CLAUDE.md` or `AGENTS.md`
+- GitHub Copilot: `.github/copilot-instructions.md`
+
+## Install the agent skills
+
+Skill-aware agents such as Claude Code can install Rendobar's skills instead of carrying a prompt:
+
+```bash
+npx skills add rendobar/agent-skills
+```
+
+Skills cover the same integration playbook and update independently of your repo.
+
+## See also
+
+- [MCP server](/mcp-server): run jobs from the chat over OAuth, no API key to copy
+- [API quickstart](/quickstart): do the integration by hand in under 5 minutes
+- [SDK](/sdk): the TypeScript client the prompt installs
diff --git a/docs.json b/docs.json
index 9fdb259..614223c 100644
--- a/docs.json
+++ b/docs.json
@@ -27,7 +27,8 @@
{
"group": "Getting Started",
"pages": [
- "quickstart"
+ "quickstart",
+ "build-with-ai"
]
},
{
@@ -264,6 +265,13 @@
"vscode"
]
},
+ "markdown": {
+ "instructions": [
+ "Keep the API key in an env var (RENDOBAR_API_KEY), never in chat or committed code.",
+ "Job types change, so fetch the live catalog from GET https://api.rendobar.com/jobs/types rather than relying on memory.",
+ "The full integration prompt for coding agents is at https://rendobar.com/prompts/integrate.md."
+ ]
+ },
"seo": {
"indexing": "all",
"metatags": {
diff --git a/quickstart.mdx b/quickstart.mdx
index 0101858..c4db7d0 100644
--- a/quickstart.mdx
+++ b/quickstart.mdx
@@ -17,7 +17,7 @@ canonical: "https://rendobar.com/docs/quickstart"
"headline": "API quickstart guide",
"description": "Submit your first ffmpeg job, poll to completion, and download the result. Under 5 minutes from API key to finished MP4.",
"datePublished": "2026-03-20",
- "dateModified": "2026-05-24",
+ "dateModified": "2026-08-15",
"author": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
"publisher": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
"isPartOf": { "@id": "https://rendobar.com/#website" }
@@ -27,6 +27,14 @@ canonical: "https://rendobar.com/docs/quickstart"
Get an API key, submit an [`ffmpeg`](/jobs/ffmpeg) job, poll until complete, download the output.
+
+**Fastest path: let your AI do it.** Paste this into your coding agent, or grab the one-click links on [Build with AI](/build-with-ai):
+
+```text
+Add Rendobar to my app: read and follow https://rendobar.com/prompts/integrate.md
+```
+
+
## 1. Get an API key
Sign up at [app.rendobar.com](https://app.rendobar.com) and create a key from **Settings → API keys**. Keys start with `rb_`. New accounts get $5 in free [credits](/concepts/credits).