Complete Runway API setup: check compatibility, configure API key, and integrate generation endpoints
PREREQUISITE: Run
+rw-check-compatibilityfirst to ensure the project has server-side capability.
This recipe guides a user through the complete process of integrating Runway's public API into their project. It chains together the compatibility check, API key setup, and API integration skills.
Use +rw-check-compatibility to analyze the user's project.
If the project is INCOMPATIBLE, stop and explain the options:
If NEEDS CHANGES, help the user make the required changes before proceeding.
If COMPATIBLE, proceed to Phase 2.
Use +rw-setup-api-key to configure credentials.
@runwayml/sdk for Node.js, runwayml for Python)RUNWAYML_API_SECRET environment variable.gitignore to exclude .envWait for the user to confirm they have their API key before proceeding.
Ask the user what they want to build. Based on their response, use the appropriate integration skill:
| User wants... | Skill to use |
|---|---|
| Generate videos from text | +rw-integrate-video (text-to-video) |
| Animate images into video | +rw-integrate-video (image-to-video) + +rw-integrate-uploads if local files |
| Edit/transform existing videos | +rw-integrate-video (video-to-video) + +rw-integrate-uploads |
| Generate images from text | +rw-integrate-image |
| Generate images with references | +rw-integrate-image + +rw-integrate-uploads if local refs |
| Text-to-speech | +rw-integrate-audio |
| Sound effects | +rw-integrate-audio |
| Voice isolation/dubbing | +rw-integrate-audio + +rw-integrate-uploads |
| Real-time conversational avatar | +rw-integrate-characters + +rw-integrate-character-embed (React UI) |
| Avatar with domain knowledge | +rw-integrate-characters + +rw-integrate-documents + +rw-integrate-character-embed |
| Multiple capabilities | Integrate each one, sharing the same client instance |
Based on the user's framework and needs:
Help the user:
When the user's workflow involves images or videos as input:
Does the input come from a public HTTPS URL?
├── YES → Pass the URL directly to the API
└── NO → Is it a local file or user-uploaded file?
├── YES → Use +rw-integrate-uploads to upload first, then pass runway:// URI
└── NO → Is it small enough for a data URI? (< 5MB image, < 16MB video)
├── YES → Convert to base64 data URI
└── NO → Use +rw-integrate-uploads