openapi: 3.0.3 info: title: Runway Character Performance Image-to-Video API description: 'The Runway (RunwayML) developer API for generative AI media. All generation is asynchronous: a POST to a generation endpoint creates a task and returns a task id, which the client polls on GET /tasks/{id} until the task reaches SUCCEEDED or FAILED. Every request must include an Authorization Bearer API secret and a dated X-Runway-Version header (for example 2024-11-06). Usage is billed in credits (roughly $0.01 per credit) against a developer organization. This description was authored by API Evangelist from Runway''s public documentation and is not an official Runway artifact; verify shapes against docs.dev.runwayml.com.' version: '2024-11-06' contact: name: Runway url: https://docs.dev.runwayml.com servers: - url: https://api.dev.runwayml.com/v1 description: Runway developer API security: - bearerAuth: [] tags: - name: Image-to-Video description: Generate video from an image and prompt (Gen-4 Turbo, Gen-4.5). paths: /image_to_video: post: operationId: imageToVideo tags: - Image-to-Video summary: Create an image-to-video task description: Generate video from a starting (and optional ending) image and a text prompt. Returns a task id to poll on GET /tasks/{id}. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImageToVideoInput' responses: '200': description: The created task. content: application/json: schema: $ref: '#/components/schemas/TaskCreated' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' components: schemas: TaskCreated: type: object properties: id: type: string description: The task id to poll on GET /tasks/{id}. ImageToVideoInput: type: object required: - promptImage - model properties: model: type: string description: Video model id. enum: - gen4_turbo - gen4.5 - gen3a_turbo example: gen4_turbo promptImage: description: 'A single image URL / data URI, or an array of positioned images ({ uri, position: first|last }) for start/end frames.' oneOf: - type: string - type: array items: type: object properties: uri: type: string position: type: string enum: - first - last promptText: type: string description: Text prompt guiding the motion / content. ratio: type: string description: Output resolution, for example 1280:768 or 768:1280. example: 1280:768 duration: type: integer description: Clip length in seconds. example: 5 seed: type: integer description: Deterministic seed (0 to 4294967295). responses: RateLimited: description: Too many requests - the account rate or concurrency limit was exceeded. Unauthorized: description: Missing or invalid API secret. securitySchemes: bearerAuth: type: http scheme: bearer description: API secret created in the Runway developer portal (dev.runwayml.com), passed as Authorization Bearer YOUR_API_SECRET. Requests must also send a dated X-Runway-Version header.