Runway · API Governance Rules
Runway API Rules
Spectral linting rules defining API design standards and conventions for Runway.
17 Rules
error 5
warn 11
info 1
Rule Categories
runway
Rules
error
runway-operation-id-required
All operations must have an operationId
$.paths[*][get,post,put,patch,delete]
warn
runway-operation-id-camel-case
Runway operationIds use camelCase convention (e.g., createTextToVideo, getTask, createAvatar). This ensures consistent client SDK method naming across Python and Node.js SDKs.
$.paths[*][get,post,put,patch,delete].operationId
error
runway-tags-required
All operations must have at least one tag
$.paths[*][get,post,put,patch,delete]
warn
runway-tags-title-case
Tags must use Title Case (e.g., "Tasks", "Text to Video", "Image to Video", "Avatars", "Documents", "Realtime Sessions").
$.paths[*][get,post,put,patch,delete].tags[*]
error
runway-summary-required
All operations must have a summary
$.paths[*][get,post,put,patch,delete]
warn
runway-summary-title-case
Operation summaries must use Title Case to match Runway's documentation (e.g., "Create Text-to-Video Generation Task", "Retrieve Task Status and Output").
$.paths[*][get,post,put,patch,delete].summary
warn
runway-description-required
All operations must have a description
$.paths[*][get,post,put,patch,delete]
warn
runway-version-header-required
All Runway API operations require the X-Runway-Version header set to "2024-11-06". This should be documented as a required parameter in every operation.
$.paths[*][get,post,put,patch,delete].parameters[?(@.name == 'X-Runway-Version')]
error
runway-bearer-auth-required
Runway API uses Bearer token authentication. All operations must be secured by the bearerAuth security scheme.
$.paths[*][get,post,put,patch,delete]
info
runway-post-creates-task-pattern
Runway generation endpoints follow an async task pattern: POST creates a task and returns a TaskCreatedResponse with an id field. GET /tasks/{id} polls for completion. All generation POST endpoints should return a task creation response.
$.paths[/image_to_video,/text_to_video,/video_to_video,/character_performance,/lip_sync,/video_upscale,/frame_interpolation,/sound_effect,/text_to_image].post.responses.200.content.application/json.schema
warn
runway-task-id-uuid-format
Task IDs in Runway API are UUIDs. Path parameters named "id" for task operations should specify format: uuid.
$.paths[~/tasks/~][*].parameters[?(@.name == 'id')].schema
warn
runway-429-rate-limit-documented
Runway API enforces rate limits. Generation POST endpoints should document the 429 Too Many Requests response.
$.paths[/image_to_video,/text_to_video,/video_to_video,/text_to_image,/character_performance,/lip_sync,/video_upscale,/frame_interpolation,/sound_effect].post.responses
warn
runway-delete-returns-204
DELETE operations should return 204 No Content
$.paths[*].delete.responses
error
runway-response-must-have-401
All operations must document the 401 Unauthorized response
$.paths[*][get,post,put,patch,delete].responses
warn
runway-schema-properties-typed
All schema properties should have a type defined
$.components.schemas[*].properties[*]
warn
runway-servers-use-production-url
Runway API production server URL is https://api.dev.runwayml.com/v1. The server must be documented correctly.
$.servers[*].url
warn
runway-info-version-format
Runway API uses date-based versioning in YYYY-MM-DD format (e.g., "2024-11-06"). The info.version field should reflect the API date version.
$.info.version