Create or update Runway API account configuration
August 8, 2024 (July 16, 2026)
Table of contents
For your convenience, you can specify your Runway configuration values under your account. If you specify multiple Runway accounts, the API will automatically perform load balancing by randomly selecting an account with available capacity before making calls to Runway.
https://api.useapi.net/v1/runwayml/accounts/
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Request Body
{
"email": "Runway account email",
"password": "Runway account password",
"maxJobs": 1-10,
"useWorkspace": true
}
-
email,passwordare required. Please see Setup Runway for details. -
emailvalue specified in the request body must match the email value specified in the URL path https://api.useapi.net/v1/runwayml/accounts/email. -
maxJobsis required. Currently, it should be between 1 and 10. We recommend setting this value to 5. -
useWorkspaceis optional. Set it when the account’s plan comes from a Runway workspace (team) the account was added to rather than from its own subscription, so generation bills against that workspace. Passtrueto auto-select the account’s single paid workspace, or pass a numeric team id to pin a specific workspace when the account belongs to more than one. Omit it (the default) to use the account’s own plan. The team ids available to an account are listed in theteamsarray returned by GET /features. -
When
useWorkspaceis set, the resolved workspace is returned in theworkspaceobject (see the response below) and reused for every generation. The request returns 400 when no active paid workspace is found, when the account belongs to more than one paid workspace and none was pinned, or when a pinned team id is not a paid workspace the account can generate in. Re-send this request to re-resolve if the workspace or its plan later changes.
Responses
-
{ "email": "user-1@example.com", "password": "<password>", "maxJobs": 5, "workspace": { "id": 654321, "name": "Team workspace", "plan": "unlimited-monthly", "auto": true }, "jwt": { "token": "<token>", "exp": 1734858598.864, "iat": 1732266598.864, "id": 123456, } }The
workspaceobject is present only whenuseWorkspacewas set and resolved.idis the team the request bills against,planis the workspace plan name, andautoistruewhen the workspace was auto-selected (useWorkspace: true) orfalsewhen a team id was pinned. -
{ "error": "<Error message>", "code": 400 } -
{ "error": "Unauthorized", "Wrong username/password combination.", "This account has been suspended." "code": 401 }
Model
{ // TypeScript, all fields are optional
email: string,
password: string,
maxJobs: number,
useWorkspace: boolean | number,
workspace: {
id: number,
name: string,
plan: string,
auto: boolean,
}
jwt: {
token: string,
exp: number,
iat: number,
id: number,
}
error: string,
errorDetails: string,
code: number
}
Examples
-
curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -X POST https://api.useapi.net/v1/runwayml/accounts/<email> \ -d '{"email": "…", "password": "…", "maxJobs": …}' -
const email = "Runway account email"; const password = "Runway account password"; const apiUrl = `https://api.useapi.net/v1/runwayml/accounts/${email}`; const token = "API token"; const maxJobs = 5; const data = { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' } }; data.body = JSON.stringify({ email, password, maxJobs }); const response = await fetch(apiUrl, data); const result = await response.json(); console.log("response", {response, result}); -
import requests email = "Runway account email" password = "Runway account password" apiUrl = f"https://api.useapi.net/v1/runwayml/accounts/{email}" token = "API token" maxJobs = 5 headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } body = { "email": f"{email}", "password": f"{password}", "maxJobs": maxJobs } response = requests.post(apiUrl, headers=headers, json=body) print(response, response.json())