[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-runway-rw-check-compatibility":3,"mdc--hl5xi0-key":29,"related-repo-runway-rw-check-compatibility":872,"related-org-runway-rw-check-compatibility":965},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":18,"repoUrl":19,"updatedAt":20,"license":21,"forks":22,"topics":23,"repo":24,"sourceUrl":27,"mdContent":28},"rw-check-compatibility","verify codebase compatibility with the Runway API","Analyze a user's codebase to verify it can use Runway's public API (server-side requirement)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"runway","Runway","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Frunway.png","runwayml",[13,15],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"API Development","api-development",57,"https:\u002F\u002Fgithub.com\u002Frunwayml\u002Fskills","2026-04-08T04:42:01.271257",null,15,[],{"repoUrl":19,"stars":18,"forks":22,"topics":25,"description":26},[],"for Runway coding agent skills","https:\u002F\u002Fgithub.com\u002Frunwayml\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Frw-check-compatibility","---\nname: rw-check-compatibility\ndescription: \"Analyze a user's codebase to verify it can use Runway's public API (server-side requirement)\"\nuser-invocable: false\nallowed-tools: Read, Grep, Glob, Bash(node --version), Bash(python3 --version), Bash(pip show *), Bash(npm ls *)\n---\n\n# Check Compatibility\n\nAnalyze the user's project to determine whether it is compatible with Runway's public API.\n\n## Why This Matters\n\nRunway's public API **requires server-side invocation**. The API key must never be exposed in client-side code. Projects that are purely frontend (static HTML\u002FJS, client-only SPAs without a backend) cannot safely call the API.\n\n## Analysis Steps\n\n### Step 1: Identify the Project Type\n\nSearch the project root for these files to determine the stack:\n\n| File | Indicates |\n|------|-----------|\n| `package.json` | Node.js project |\n| `requirements.txt`, `pyproject.toml`, `Pipfile`, `setup.py` | Python project |\n| `go.mod` | Go project |\n| `Cargo.toml` | Rust project |\n| `pom.xml`, `build.gradle` | Java\u002FKotlin project |\n| `Gemfile` | Ruby project |\n| `composer.json` | PHP project |\n\nIf none of these exist, flag the project as **unknown** and ask the user what language\u002Fruntime they're using.\n\n### Step 2: Check for Server-Side Capability\n\nLook for indicators of a server\u002Fbackend:\n\n**Node.js projects — check `package.json` dependencies for:**\n- `express`, `fastify`, `koa`, `hapi`, `nest`, `hono` → HTTP server framework\n- `next` → Next.js (has API routes — compatible)\n- `nuxt` → Nuxt.js (has server routes — compatible)\n- `remix` → Remix (has loaders\u002Factions — compatible)\n- `@sveltejs\u002Fkit` → SvelteKit (has server routes — compatible)\n- `astro` → Astro (has API endpoints if SSR enabled)\n\n**Python projects — check for:**\n- `flask`, `django`, `fastapi`, `starlette`, `tornado`, `aiohttp`, `sanic` → web server framework\n- `streamlit`, `gradio` → can make server-side calls\n\n**Red flags (frontend-only):**\n- `package.json` with only `react`, `vue`, `svelte`, `angular` and NO server framework\n- `vite.config.ts` or `webpack.config.js` with no server\u002FSSR configuration\n- Static site generators without server routes (e.g., plain Gatsby, plain Eleventy)\n- `index.html` as the only entry point with inline `\u003Cscript>` tags\n\n### Step 3: Check for Existing Runway SDK\n\nSearch for existing Runway SDK installations:\n\n**Node.js:**\n- Check `package.json` for `@runwayml\u002Fsdk`\n- Search for `import RunwayML` or `require('@runwayml\u002Fsdk')` in source files\n\n**Python:**\n- Check `requirements.txt` \u002F `pyproject.toml` for `runwayml`\n- Search for `from runwayml import RunwayML` or `import runwayml` in source files\n\n### Step 4: Check Runtime Version\n\n**Node.js:** Must be version 18 or higher (`node --version`)\n**Python:** Must be version 3.8 or higher (`python3 --version`)\n\n### Step 5: Check for Environment Variable Support\n\nLook for `.env` file, `.env.example`, `.env.local`, or dotenv configuration:\n- Node.js: `dotenv` in dependencies, or framework-native env support (Next.js, etc.)\n- Python: `python-dotenv` in dependencies, or framework-native support\n\n## Report Format\n\nAfter analysis, provide a clear report:\n\n```\n## Runway API Compatibility Report\n\n**Project type:** [Node.js \u002F Python \u002F etc.]\n**Server-side capable:** [Yes \u002F No \u002F Partial]\n**Runtime version:** [version] — [Compatible \u002F Needs upgrade]\n**Runway SDK installed:** [Yes \u002F No]\n**Environment variable support:** [Yes \u002F No \u002F Needs setup]\n\n### Verdict: [COMPATIBLE \u002F NEEDS CHANGES \u002F INCOMPATIBLE]\n\n[If COMPATIBLE]\nYour project is ready for Runway API integration. Proceed with API key setup.\n\n[If NEEDS CHANGES]\nYour project needs the following changes:\n1. [List specific changes needed]\n\n[If INCOMPATIBLE]\nYour project is frontend-only and cannot safely call Runway's API. Options:\n1. **Add a backend** — Add an Express\u002FFastAPI server or use a framework with server routes (Next.js, SvelteKit, etc.)\n2. **Use a serverless function** — Add API routes via Vercel Functions, AWS Lambda, Cloudflare Workers, etc.\n3. **Create a separate backend** — Build a thin API proxy that your frontend calls\n```\n\n## Important Notes\n\n- **Never suggest embedding the API key in client-side code.** This is a security risk.\n- If the project uses Next.js, Remix, SvelteKit, Nuxt, or Astro with SSR, it IS compatible — the server-side route handlers can call the API.\n- Serverless platforms (Vercel, Netlify, AWS Lambda, Cloudflare Workers) are compatible.\n- Docker\u002Fcontainerized apps are compatible if they run a server process.\n\n## After Compatibility Check\n\nIf the project is compatible, suggest the user proceed with `+rw-setup-api-key` to configure their API credentials.\n",{"data":30,"body":33},{"name":4,"description":6,"user-invocable":31,"allowed-tools":32},false,"Read, Grep, Glob, Bash(node --version), Bash(python3 --version), Bash(pip show *), Bash(npm ls *)",{"type":34,"children":35},"root",[36,45,51,58,71,77,84,89,266,278,284,289,304,410,418,492,500,585,591,596,604,645,653,696,702,733,739,767,796,802,807,819,825,853,859],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"check-compatibility",[42],{"type":43,"value":44},"text","Check Compatibility",{"type":37,"tag":46,"props":47,"children":48},"p",{},[49],{"type":43,"value":50},"Analyze the user's project to determine whether it is compatible with Runway's public API.",{"type":37,"tag":52,"props":53,"children":55},"h2",{"id":54},"why-this-matters",[56],{"type":43,"value":57},"Why This Matters",{"type":37,"tag":46,"props":59,"children":60},{},[61,63,69],{"type":43,"value":62},"Runway's public API ",{"type":37,"tag":64,"props":65,"children":66},"strong",{},[67],{"type":43,"value":68},"requires server-side invocation",{"type":43,"value":70},". The API key must never be exposed in client-side code. Projects that are purely frontend (static HTML\u002FJS, client-only SPAs without a backend) cannot safely call the API.",{"type":37,"tag":52,"props":72,"children":74},{"id":73},"analysis-steps",[75],{"type":43,"value":76},"Analysis Steps",{"type":37,"tag":78,"props":79,"children":81},"h3",{"id":80},"step-1-identify-the-project-type",[82],{"type":43,"value":83},"Step 1: Identify the Project Type",{"type":37,"tag":46,"props":85,"children":86},{},[87],{"type":43,"value":88},"Search the project root for these files to determine the stack:",{"type":37,"tag":90,"props":91,"children":92},"table",{},[93,112],{"type":37,"tag":94,"props":95,"children":96},"thead",{},[97],{"type":37,"tag":98,"props":99,"children":100},"tr",{},[101,107],{"type":37,"tag":102,"props":103,"children":104},"th",{},[105],{"type":43,"value":106},"File",{"type":37,"tag":102,"props":108,"children":109},{},[110],{"type":43,"value":111},"Indicates",{"type":37,"tag":113,"props":114,"children":115},"tbody",{},[116,135,174,191,208,232,249],{"type":37,"tag":98,"props":117,"children":118},{},[119,130],{"type":37,"tag":120,"props":121,"children":122},"td",{},[123],{"type":37,"tag":124,"props":125,"children":127},"code",{"className":126},[],[128],{"type":43,"value":129},"package.json",{"type":37,"tag":120,"props":131,"children":132},{},[133],{"type":43,"value":134},"Node.js project",{"type":37,"tag":98,"props":136,"children":137},{},[138,169],{"type":37,"tag":120,"props":139,"children":140},{},[141,147,149,155,156,162,163],{"type":37,"tag":124,"props":142,"children":144},{"className":143},[],[145],{"type":43,"value":146},"requirements.txt",{"type":43,"value":148},", ",{"type":37,"tag":124,"props":150,"children":152},{"className":151},[],[153],{"type":43,"value":154},"pyproject.toml",{"type":43,"value":148},{"type":37,"tag":124,"props":157,"children":159},{"className":158},[],[160],{"type":43,"value":161},"Pipfile",{"type":43,"value":148},{"type":37,"tag":124,"props":164,"children":166},{"className":165},[],[167],{"type":43,"value":168},"setup.py",{"type":37,"tag":120,"props":170,"children":171},{},[172],{"type":43,"value":173},"Python project",{"type":37,"tag":98,"props":175,"children":176},{},[177,186],{"type":37,"tag":120,"props":178,"children":179},{},[180],{"type":37,"tag":124,"props":181,"children":183},{"className":182},[],[184],{"type":43,"value":185},"go.mod",{"type":37,"tag":120,"props":187,"children":188},{},[189],{"type":43,"value":190},"Go project",{"type":37,"tag":98,"props":192,"children":193},{},[194,203],{"type":37,"tag":120,"props":195,"children":196},{},[197],{"type":37,"tag":124,"props":198,"children":200},{"className":199},[],[201],{"type":43,"value":202},"Cargo.toml",{"type":37,"tag":120,"props":204,"children":205},{},[206],{"type":43,"value":207},"Rust project",{"type":37,"tag":98,"props":209,"children":210},{},[211,227],{"type":37,"tag":120,"props":212,"children":213},{},[214,220,221],{"type":37,"tag":124,"props":215,"children":217},{"className":216},[],[218],{"type":43,"value":219},"pom.xml",{"type":43,"value":148},{"type":37,"tag":124,"props":222,"children":224},{"className":223},[],[225],{"type":43,"value":226},"build.gradle",{"type":37,"tag":120,"props":228,"children":229},{},[230],{"type":43,"value":231},"Java\u002FKotlin project",{"type":37,"tag":98,"props":233,"children":234},{},[235,244],{"type":37,"tag":120,"props":236,"children":237},{},[238],{"type":37,"tag":124,"props":239,"children":241},{"className":240},[],[242],{"type":43,"value":243},"Gemfile",{"type":37,"tag":120,"props":245,"children":246},{},[247],{"type":43,"value":248},"Ruby project",{"type":37,"tag":98,"props":250,"children":251},{},[252,261],{"type":37,"tag":120,"props":253,"children":254},{},[255],{"type":37,"tag":124,"props":256,"children":258},{"className":257},[],[259],{"type":43,"value":260},"composer.json",{"type":37,"tag":120,"props":262,"children":263},{},[264],{"type":43,"value":265},"PHP project",{"type":37,"tag":46,"props":267,"children":268},{},[269,271,276],{"type":43,"value":270},"If none of these exist, flag the project as ",{"type":37,"tag":64,"props":272,"children":273},{},[274],{"type":43,"value":275},"unknown",{"type":43,"value":277}," and ask the user what language\u002Fruntime they're using.",{"type":37,"tag":78,"props":279,"children":281},{"id":280},"step-2-check-for-server-side-capability",[282],{"type":43,"value":283},"Step 2: Check for Server-Side Capability",{"type":37,"tag":46,"props":285,"children":286},{},[287],{"type":43,"value":288},"Look for indicators of a server\u002Fbackend:",{"type":37,"tag":46,"props":290,"children":291},{},[292],{"type":37,"tag":64,"props":293,"children":294},{},[295,297,302],{"type":43,"value":296},"Node.js projects — check ",{"type":37,"tag":124,"props":298,"children":300},{"className":299},[],[301],{"type":43,"value":129},{"type":43,"value":303}," dependencies for:",{"type":37,"tag":305,"props":306,"children":307},"ul",{},[308,355,366,377,388,399],{"type":37,"tag":309,"props":310,"children":311},"li",{},[312,318,319,325,326,332,333,339,340,346,347,353],{"type":37,"tag":124,"props":313,"children":315},{"className":314},[],[316],{"type":43,"value":317},"express",{"type":43,"value":148},{"type":37,"tag":124,"props":320,"children":322},{"className":321},[],[323],{"type":43,"value":324},"fastify",{"type":43,"value":148},{"type":37,"tag":124,"props":327,"children":329},{"className":328},[],[330],{"type":43,"value":331},"koa",{"type":43,"value":148},{"type":37,"tag":124,"props":334,"children":336},{"className":335},[],[337],{"type":43,"value":338},"hapi",{"type":43,"value":148},{"type":37,"tag":124,"props":341,"children":343},{"className":342},[],[344],{"type":43,"value":345},"nest",{"type":43,"value":148},{"type":37,"tag":124,"props":348,"children":350},{"className":349},[],[351],{"type":43,"value":352},"hono",{"type":43,"value":354}," → HTTP server framework",{"type":37,"tag":309,"props":356,"children":357},{},[358,364],{"type":37,"tag":124,"props":359,"children":361},{"className":360},[],[362],{"type":43,"value":363},"next",{"type":43,"value":365}," → Next.js (has API routes — compatible)",{"type":37,"tag":309,"props":367,"children":368},{},[369,375],{"type":37,"tag":124,"props":370,"children":372},{"className":371},[],[373],{"type":43,"value":374},"nuxt",{"type":43,"value":376}," → Nuxt.js (has server routes — compatible)",{"type":37,"tag":309,"props":378,"children":379},{},[380,386],{"type":37,"tag":124,"props":381,"children":383},{"className":382},[],[384],{"type":43,"value":385},"remix",{"type":43,"value":387}," → Remix (has loaders\u002Factions — compatible)",{"type":37,"tag":309,"props":389,"children":390},{},[391,397],{"type":37,"tag":124,"props":392,"children":394},{"className":393},[],[395],{"type":43,"value":396},"@sveltejs\u002Fkit",{"type":43,"value":398}," → SvelteKit (has server routes — compatible)",{"type":37,"tag":309,"props":400,"children":401},{},[402,408],{"type":37,"tag":124,"props":403,"children":405},{"className":404},[],[406],{"type":43,"value":407},"astro",{"type":43,"value":409}," → Astro (has API endpoints if SSR enabled)",{"type":37,"tag":46,"props":411,"children":412},{},[413],{"type":37,"tag":64,"props":414,"children":415},{},[416],{"type":43,"value":417},"Python projects — check for:",{"type":37,"tag":305,"props":419,"children":420},{},[421,474],{"type":37,"tag":309,"props":422,"children":423},{},[424,430,431,437,438,444,445,451,452,458,459,465,466,472],{"type":37,"tag":124,"props":425,"children":427},{"className":426},[],[428],{"type":43,"value":429},"flask",{"type":43,"value":148},{"type":37,"tag":124,"props":432,"children":434},{"className":433},[],[435],{"type":43,"value":436},"django",{"type":43,"value":148},{"type":37,"tag":124,"props":439,"children":441},{"className":440},[],[442],{"type":43,"value":443},"fastapi",{"type":43,"value":148},{"type":37,"tag":124,"props":446,"children":448},{"className":447},[],[449],{"type":43,"value":450},"starlette",{"type":43,"value":148},{"type":37,"tag":124,"props":453,"children":455},{"className":454},[],[456],{"type":43,"value":457},"tornado",{"type":43,"value":148},{"type":37,"tag":124,"props":460,"children":462},{"className":461},[],[463],{"type":43,"value":464},"aiohttp",{"type":43,"value":148},{"type":37,"tag":124,"props":467,"children":469},{"className":468},[],[470],{"type":43,"value":471},"sanic",{"type":43,"value":473}," → web server framework",{"type":37,"tag":309,"props":475,"children":476},{},[477,483,484,490],{"type":37,"tag":124,"props":478,"children":480},{"className":479},[],[481],{"type":43,"value":482},"streamlit",{"type":43,"value":148},{"type":37,"tag":124,"props":485,"children":487},{"className":486},[],[488],{"type":43,"value":489},"gradio",{"type":43,"value":491}," → can make server-side calls",{"type":37,"tag":46,"props":493,"children":494},{},[495],{"type":37,"tag":64,"props":496,"children":497},{},[498],{"type":43,"value":499},"Red flags (frontend-only):",{"type":37,"tag":305,"props":501,"children":502},{},[503,542,561,566],{"type":37,"tag":309,"props":504,"children":505},{},[506,511,513,519,520,526,527,533,534,540],{"type":37,"tag":124,"props":507,"children":509},{"className":508},[],[510],{"type":43,"value":129},{"type":43,"value":512}," with only ",{"type":37,"tag":124,"props":514,"children":516},{"className":515},[],[517],{"type":43,"value":518},"react",{"type":43,"value":148},{"type":37,"tag":124,"props":521,"children":523},{"className":522},[],[524],{"type":43,"value":525},"vue",{"type":43,"value":148},{"type":37,"tag":124,"props":528,"children":530},{"className":529},[],[531],{"type":43,"value":532},"svelte",{"type":43,"value":148},{"type":37,"tag":124,"props":535,"children":537},{"className":536},[],[538],{"type":43,"value":539},"angular",{"type":43,"value":541}," and NO server framework",{"type":37,"tag":309,"props":543,"children":544},{},[545,551,553,559],{"type":37,"tag":124,"props":546,"children":548},{"className":547},[],[549],{"type":43,"value":550},"vite.config.ts",{"type":43,"value":552}," or ",{"type":37,"tag":124,"props":554,"children":556},{"className":555},[],[557],{"type":43,"value":558},"webpack.config.js",{"type":43,"value":560}," with no server\u002FSSR configuration",{"type":37,"tag":309,"props":562,"children":563},{},[564],{"type":43,"value":565},"Static site generators without server routes (e.g., plain Gatsby, plain Eleventy)",{"type":37,"tag":309,"props":567,"children":568},{},[569,575,577,583],{"type":37,"tag":124,"props":570,"children":572},{"className":571},[],[573],{"type":43,"value":574},"index.html",{"type":43,"value":576}," as the only entry point with inline ",{"type":37,"tag":124,"props":578,"children":580},{"className":579},[],[581],{"type":43,"value":582},"\u003Cscript>",{"type":43,"value":584}," tags",{"type":37,"tag":78,"props":586,"children":588},{"id":587},"step-3-check-for-existing-runway-sdk",[589],{"type":43,"value":590},"Step 3: Check for Existing Runway SDK",{"type":37,"tag":46,"props":592,"children":593},{},[594],{"type":43,"value":595},"Search for existing Runway SDK installations:",{"type":37,"tag":46,"props":597,"children":598},{},[599],{"type":37,"tag":64,"props":600,"children":601},{},[602],{"type":43,"value":603},"Node.js:",{"type":37,"tag":305,"props":605,"children":606},{},[607,625],{"type":37,"tag":309,"props":608,"children":609},{},[610,612,617,619],{"type":43,"value":611},"Check ",{"type":37,"tag":124,"props":613,"children":615},{"className":614},[],[616],{"type":43,"value":129},{"type":43,"value":618}," for ",{"type":37,"tag":124,"props":620,"children":622},{"className":621},[],[623],{"type":43,"value":624},"@runwayml\u002Fsdk",{"type":37,"tag":309,"props":626,"children":627},{},[628,630,636,637,643],{"type":43,"value":629},"Search for ",{"type":37,"tag":124,"props":631,"children":633},{"className":632},[],[634],{"type":43,"value":635},"import RunwayML",{"type":43,"value":552},{"type":37,"tag":124,"props":638,"children":640},{"className":639},[],[641],{"type":43,"value":642},"require('@runwayml\u002Fsdk')",{"type":43,"value":644}," in source files",{"type":37,"tag":46,"props":646,"children":647},{},[648],{"type":37,"tag":64,"props":649,"children":650},{},[651],{"type":43,"value":652},"Python:",{"type":37,"tag":305,"props":654,"children":655},{},[656,678],{"type":37,"tag":309,"props":657,"children":658},{},[659,660,665,667,672,673],{"type":43,"value":611},{"type":37,"tag":124,"props":661,"children":663},{"className":662},[],[664],{"type":43,"value":146},{"type":43,"value":666}," \u002F ",{"type":37,"tag":124,"props":668,"children":670},{"className":669},[],[671],{"type":43,"value":154},{"type":43,"value":618},{"type":37,"tag":124,"props":674,"children":676},{"className":675},[],[677],{"type":43,"value":11},{"type":37,"tag":309,"props":679,"children":680},{},[681,682,688,689,695],{"type":43,"value":629},{"type":37,"tag":124,"props":683,"children":685},{"className":684},[],[686],{"type":43,"value":687},"from runwayml import RunwayML",{"type":43,"value":552},{"type":37,"tag":124,"props":690,"children":692},{"className":691},[],[693],{"type":43,"value":694},"import runwayml",{"type":43,"value":644},{"type":37,"tag":78,"props":697,"children":699},{"id":698},"step-4-check-runtime-version",[700],{"type":43,"value":701},"Step 4: Check Runtime Version",{"type":37,"tag":46,"props":703,"children":704},{},[705,709,711,717,719,723,725,731],{"type":37,"tag":64,"props":706,"children":707},{},[708],{"type":43,"value":603},{"type":43,"value":710}," Must be version 18 or higher (",{"type":37,"tag":124,"props":712,"children":714},{"className":713},[],[715],{"type":43,"value":716},"node --version",{"type":43,"value":718},")\n",{"type":37,"tag":64,"props":720,"children":721},{},[722],{"type":43,"value":652},{"type":43,"value":724}," Must be version 3.8 or higher (",{"type":37,"tag":124,"props":726,"children":728},{"className":727},[],[729],{"type":43,"value":730},"python3 --version",{"type":43,"value":732},")",{"type":37,"tag":78,"props":734,"children":736},{"id":735},"step-5-check-for-environment-variable-support",[737],{"type":43,"value":738},"Step 5: Check for Environment Variable Support",{"type":37,"tag":46,"props":740,"children":741},{},[742,744,750,752,758,759,765],{"type":43,"value":743},"Look for ",{"type":37,"tag":124,"props":745,"children":747},{"className":746},[],[748],{"type":43,"value":749},".env",{"type":43,"value":751}," file, ",{"type":37,"tag":124,"props":753,"children":755},{"className":754},[],[756],{"type":43,"value":757},".env.example",{"type":43,"value":148},{"type":37,"tag":124,"props":760,"children":762},{"className":761},[],[763],{"type":43,"value":764},".env.local",{"type":43,"value":766},", or dotenv configuration:",{"type":37,"tag":305,"props":768,"children":769},{},[770,783],{"type":37,"tag":309,"props":771,"children":772},{},[773,775,781],{"type":43,"value":774},"Node.js: ",{"type":37,"tag":124,"props":776,"children":778},{"className":777},[],[779],{"type":43,"value":780},"dotenv",{"type":43,"value":782}," in dependencies, or framework-native env support (Next.js, etc.)",{"type":37,"tag":309,"props":784,"children":785},{},[786,788,794],{"type":43,"value":787},"Python: ",{"type":37,"tag":124,"props":789,"children":791},{"className":790},[],[792],{"type":43,"value":793},"python-dotenv",{"type":43,"value":795}," in dependencies, or framework-native support",{"type":37,"tag":52,"props":797,"children":799},{"id":798},"report-format",[800],{"type":43,"value":801},"Report Format",{"type":37,"tag":46,"props":803,"children":804},{},[805],{"type":43,"value":806},"After analysis, provide a clear report:",{"type":37,"tag":808,"props":809,"children":813},"pre",{"className":810,"code":812,"language":43},[811],"language-text","## Runway API Compatibility Report\n\n**Project type:** [Node.js \u002F Python \u002F etc.]\n**Server-side capable:** [Yes \u002F No \u002F Partial]\n**Runtime version:** [version] — [Compatible \u002F Needs upgrade]\n**Runway SDK installed:** [Yes \u002F No]\n**Environment variable support:** [Yes \u002F No \u002F Needs setup]\n\n### Verdict: [COMPATIBLE \u002F NEEDS CHANGES \u002F INCOMPATIBLE]\n\n[If COMPATIBLE]\nYour project is ready for Runway API integration. Proceed with API key setup.\n\n[If NEEDS CHANGES]\nYour project needs the following changes:\n1. [List specific changes needed]\n\n[If INCOMPATIBLE]\nYour project is frontend-only and cannot safely call Runway's API. Options:\n1. **Add a backend** — Add an Express\u002FFastAPI server or use a framework with server routes (Next.js, SvelteKit, etc.)\n2. **Use a serverless function** — Add API routes via Vercel Functions, AWS Lambda, Cloudflare Workers, etc.\n3. **Create a separate backend** — Build a thin API proxy that your frontend calls\n",[814],{"type":37,"tag":124,"props":815,"children":817},{"__ignoreMap":816},"",[818],{"type":43,"value":812},{"type":37,"tag":52,"props":820,"children":822},{"id":821},"important-notes",[823],{"type":43,"value":824},"Important Notes",{"type":37,"tag":305,"props":826,"children":827},{},[828,838,843,848],{"type":37,"tag":309,"props":829,"children":830},{},[831,836],{"type":37,"tag":64,"props":832,"children":833},{},[834],{"type":43,"value":835},"Never suggest embedding the API key in client-side code.",{"type":43,"value":837}," This is a security risk.",{"type":37,"tag":309,"props":839,"children":840},{},[841],{"type":43,"value":842},"If the project uses Next.js, Remix, SvelteKit, Nuxt, or Astro with SSR, it IS compatible — the server-side route handlers can call the API.",{"type":37,"tag":309,"props":844,"children":845},{},[846],{"type":43,"value":847},"Serverless platforms (Vercel, Netlify, AWS Lambda, Cloudflare Workers) are compatible.",{"type":37,"tag":309,"props":849,"children":850},{},[851],{"type":43,"value":852},"Docker\u002Fcontainerized apps are compatible if they run a server process.",{"type":37,"tag":52,"props":854,"children":856},{"id":855},"after-compatibility-check",[857],{"type":43,"value":858},"After Compatibility Check",{"type":37,"tag":46,"props":860,"children":861},{},[862,864,870],{"type":43,"value":863},"If the project is compatible, suggest the user proceed with ",{"type":37,"tag":124,"props":865,"children":867},{"className":866},[],[868],{"type":43,"value":869},"+rw-setup-api-key",{"type":43,"value":871}," to configure their API credentials.",{"items":873,"total":964},[874,891,896,910,925,940,953],{"slug":875,"name":875,"fn":876,"description":877,"org":878,"tags":879,"stars":18,"repoUrl":19,"updatedAt":890},"rw-api-reference","look up Runway API reference","Complete reference for Runway's public API: models, endpoints, costs, limits, and types",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[880,883,884,887],{"name":881,"slug":882,"type":14},"AI Infrastructure","ai-infrastructure",{"name":16,"slug":17,"type":14},{"name":885,"slug":886,"type":14},"Reference","reference",{"name":888,"slug":889,"type":14},"Video","video","2026-04-08T04:41:58.820783",{"slug":4,"name":4,"fn":5,"description":6,"org":892,"tags":893,"stars":18,"repoUrl":19,"updatedAt":20},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[894,895],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"slug":897,"name":897,"fn":898,"description":899,"org":900,"tags":901,"stars":18,"repoUrl":19,"updatedAt":909},"rw-check-org-details","query Runway API for organization details","Query the Runway API for organization details: rate limits, credit balance, usage tier, and daily generation counts",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[902,905,908],{"name":903,"slug":904,"type":14},"Operations","operations",{"name":906,"slug":907,"type":14},"Reporting","reporting",{"name":9,"slug":8,"type":14},"2026-04-08T04:42:00.054235",{"slug":911,"name":911,"fn":912,"description":913,"org":914,"tags":915,"stars":18,"repoUrl":19,"updatedAt":924},"rw-fetch-api-reference","retrieve Runway API reference","Retrieve the latest Runway API reference from docs.dev.runwayml.com and use it as the authoritative source before any integration work",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[916,917,920,923],{"name":16,"slug":17,"type":14},{"name":918,"slug":919,"type":14},"Documentation","documentation",{"name":921,"slug":922,"type":14},"Research","research",{"name":9,"slug":8,"type":14},"2026-04-08T04:42:07.604739",{"slug":926,"name":926,"fn":927,"description":928,"org":929,"tags":930,"stars":18,"repoUrl":19,"updatedAt":939},"rw-generate-audio","generate audio with Runway API","Generate audio using the Runway API via runnable scripts. Supports TTS, sound effects, voice isolation, dubbing, and voice conversion.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[931,932,935,938],{"name":881,"slug":882,"type":14},{"name":933,"slug":934,"type":14},"Audio","audio",{"name":936,"slug":937,"type":14},"Creative","creative",{"name":9,"slug":8,"type":14},"2026-04-17T04:51:59.892185",{"slug":941,"name":941,"fn":942,"description":943,"org":944,"tags":945,"stars":18,"repoUrl":19,"updatedAt":952},"rw-generate-image","generate images with Runway API","Generate images directly using the Runway API via runnable scripts. Supports text-to-image with optional reference images.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[946,947,948,951],{"name":881,"slug":882,"type":14},{"name":936,"slug":937,"type":14},{"name":949,"slug":950,"type":14},"Image Generation","image-generation",{"name":9,"slug":8,"type":14},"2026-04-17T04:52:01.158325",{"slug":954,"name":954,"fn":955,"description":956,"org":957,"tags":958,"stars":18,"repoUrl":19,"updatedAt":963},"rw-generate-video","generate videos with Runway API","Generate videos directly using the Runway API via runnable scripts. Supports text-to-video, image-to-video, and video-to-video with seedance2, gen4.5, veo3, and more.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[959,960,961,962],{"name":881,"slug":882,"type":14},{"name":936,"slug":937,"type":14},{"name":9,"slug":8,"type":14},{"name":888,"slug":889,"type":14},"2026-04-17T04:51:58.600919",17,{"items":966,"total":1086},[967,974,979,985,992,999,1006,1013,1027,1044,1055,1075],{"slug":875,"name":875,"fn":876,"description":877,"org":968,"tags":969,"stars":18,"repoUrl":19,"updatedAt":890},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[970,971,972,973],{"name":881,"slug":882,"type":14},{"name":16,"slug":17,"type":14},{"name":885,"slug":886,"type":14},{"name":888,"slug":889,"type":14},{"slug":4,"name":4,"fn":5,"description":6,"org":975,"tags":976,"stars":18,"repoUrl":19,"updatedAt":20},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[977,978],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"slug":897,"name":897,"fn":898,"description":899,"org":980,"tags":981,"stars":18,"repoUrl":19,"updatedAt":909},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[982,983,984],{"name":903,"slug":904,"type":14},{"name":906,"slug":907,"type":14},{"name":9,"slug":8,"type":14},{"slug":911,"name":911,"fn":912,"description":913,"org":986,"tags":987,"stars":18,"repoUrl":19,"updatedAt":924},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[988,989,990,991],{"name":16,"slug":17,"type":14},{"name":918,"slug":919,"type":14},{"name":921,"slug":922,"type":14},{"name":9,"slug":8,"type":14},{"slug":926,"name":926,"fn":927,"description":928,"org":993,"tags":994,"stars":18,"repoUrl":19,"updatedAt":939},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[995,996,997,998],{"name":881,"slug":882,"type":14},{"name":933,"slug":934,"type":14},{"name":936,"slug":937,"type":14},{"name":9,"slug":8,"type":14},{"slug":941,"name":941,"fn":942,"description":943,"org":1000,"tags":1001,"stars":18,"repoUrl":19,"updatedAt":952},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1002,1003,1004,1005],{"name":881,"slug":882,"type":14},{"name":936,"slug":937,"type":14},{"name":949,"slug":950,"type":14},{"name":9,"slug":8,"type":14},{"slug":954,"name":954,"fn":955,"description":956,"org":1007,"tags":1008,"stars":18,"repoUrl":19,"updatedAt":963},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1009,1010,1011,1012],{"name":881,"slug":882,"type":14},{"name":936,"slug":937,"type":14},{"name":9,"slug":8,"type":14},{"name":888,"slug":889,"type":14},{"slug":1014,"name":1014,"fn":1015,"description":1016,"org":1017,"tags":1018,"stars":18,"repoUrl":19,"updatedAt":1026},"rw-integrate-audio","integrate Runway audio APIs","Help users integrate Runway audio APIs (TTS, sound effects, voice isolation, dubbing)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1019,1020,1021,1022,1023],{"name":16,"slug":17,"type":14},{"name":933,"slug":934,"type":14},{"name":936,"slug":937,"type":14},{"name":9,"slug":8,"type":14},{"name":1024,"slug":1025,"type":14},"Speech","speech","2026-04-08T04:42:10.081814",{"slug":1028,"name":1028,"fn":1029,"description":1030,"org":1031,"tags":1032,"stars":18,"repoUrl":19,"updatedAt":1043},"rw-integrate-character-embed","embed Runway characters in React apps","Help users embed Runway Character avatar calls in React apps using the @runwayml\u002Favatars-react SDK",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1033,1034,1037,1039,1040],{"name":16,"slug":17,"type":14},{"name":1035,"slug":1036,"type":14},"Frontend","frontend",{"name":1038,"slug":518,"type":14},"React",{"name":9,"slug":8,"type":14},{"name":1041,"slug":1042,"type":14},"UI Components","ui-components","2026-04-08T04:42:08.849481",{"slug":1045,"name":1045,"fn":1046,"description":1047,"org":1048,"tags":1049,"stars":18,"repoUrl":19,"updatedAt":1054},"rw-integrate-characters","integrate Runway conversational characters","Help users create Runway Characters (GWM-1 avatars) and integrate real-time conversational sessions into their apps",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1050,1051,1052,1053],{"name":16,"slug":17,"type":14},{"name":933,"slug":934,"type":14},{"name":936,"slug":937,"type":14},{"name":9,"slug":8,"type":14},"2026-04-08T04:42:06.171483",{"slug":1056,"name":1056,"fn":1057,"description":1058,"org":1059,"tags":1060,"stars":18,"repoUrl":19,"updatedAt":1074},"rw-integrate-documents","add documents to Runway Characters","Help users add knowledge base documents to Runway Characters for domain-specific conversations",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1061,1064,1067,1070,1073],{"name":1062,"slug":1063,"type":14},"Agents","agents",{"name":1065,"slug":1066,"type":14},"AI Context","ai-context",{"name":1068,"slug":1069,"type":14},"Documents","documents",{"name":1071,"slug":1072,"type":14},"Knowledge Management","knowledge-management",{"name":9,"slug":8,"type":14},"2026-04-08T04:42:04.95186",{"slug":1076,"name":1076,"fn":1077,"description":1078,"org":1079,"tags":1080,"stars":18,"repoUrl":19,"updatedAt":1085},"rw-integrate-image","integrate Runway image generation APIs","Help users integrate Runway image generation APIs (text-to-image with reference images)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1081,1082,1083,1084],{"name":16,"slug":17,"type":14},{"name":936,"slug":937,"type":14},{"name":949,"slug":950,"type":14},{"name":9,"slug":8,"type":14},"2026-04-08T04:42:11.322008",18]