Runway's API at https://api.dev.runwayml.com/v1 generates video and images. Every request needs X-Runway-Version; generation returns a task id to poll.
Create a key in the Runway developer portal (it starts with key_) and send it as Authorization: Bearer <key>. In the examples it's written {{RUNWAYML_API_SECRET}}.
Full reference: https://docs.dev.runwayml.com/
From Runway's own example.
curl -X POST https://api.dev.runwayml.com/v1/image_to_video \
-H "Authorization: Bearer {{RUNWAYML_API_SECRET}}" \
-H "X-Runway-Version: 2024-11-06" \
-H "Content-Type: application/json" \
-d '{"promptImage": "https://upload.wikimedia.org/wikipedia/commons/8/85/Tour_Eiffel_Wikimedia_Commons_(cropped).jpg", "promptText": "timelapse on a sunny day with clouds flying by", "model": "gen4.5", "ratio": "1280:720", "duration": 5}'
Poll until status is SUCCEEDED; output holds the URLs.
curl https://api.dev.runwayml.com/v1/tasks/{{TASK_ID}} \
-H "Authorization: Bearer {{RUNWAYML_API_SECRET}}" \
-H "X-Runway-Version: 2024-11-06"