Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "4.1.0"
".": "4.2.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 43
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml/runwayml-b85d7ddcdd90c3009ccbad953a0f5c1015b6f4acc6196ce47dfaff89873e8831.yml
openapi_spec_hash: c660abf954cb61f065c4f957966776bb
config_hash: dbcc649d22e217f477258caee20c63d2
configured_endpoints: 49
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml/runwayml-ae784dbc3407e86a6458d2848f2e9720eea6b3c534c3bbe101b614e3eb547dac.yml
openapi_spec_hash: e84013ce9a3d7c14175ba3050cbb5bc1
config_hash: 702846e1d30f519e56e425ca5455febe
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## 4.2.0 (2026-06-17)

Full Changelog: [v4.1.0...v4.2.0](https://github.com/runwayml/sdk-node/compare/v4.1.0...v4.2.0)

### Features

* **api:** Recipes, aleph2 range ([05ae79c](https://github.com/runwayml/sdk-node/commit/05ae79c87f5bfc60545c5e8271a9f19c29728085))
* **client:** add recipe endpoints to config ([8509e2b](https://github.com/runwayml/sdk-node/commit/8509e2bf6a6350873e69186e01a6bf71121f0a1c))
* **client:** Make recipes waitable ([2806992](https://github.com/runwayml/sdk-node/commit/2806992850b4bacdd24afa5154e63cbcb2c06e52))


### Bug Fixes

* **api:** remove range param ([a602a48](https://github.com/runwayml/sdk-node/commit/a602a48b1a6eef9bdc845f09851fa58100c2d155))
* **client:** send content-type header for requests with an omitted optional body ([b26f126](https://github.com/runwayml/sdk-node/commit/b26f126323c83fca99555e7b897fcda048ccd098))

## 4.1.0 (2026-06-12)

Full Changelog: [v4.0.0...v4.1.0](https://github.com/runwayml/sdk-node/compare/v4.0.0...v4.1.0)
Expand Down
20 changes: 20 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,26 @@ Methods:
- <code title="get /v1/realtime_sessions/{id}">client.realtimeSessions.<a href="./src/resources/realtime-sessions.ts">retrieve</a>(id) -> RealtimeSessionRetrieveResponse</code>
- <code title="delete /v1/realtime_sessions/{id}">client.realtimeSessions.<a href="./src/resources/realtime-sessions.ts">delete</a>(id) -> void</code>

# Recipes

Types:

- <code><a href="./src/resources/recipes.ts">RecipeMarketingStockImageResponse</a></code>
- <code><a href="./src/resources/recipes.ts">RecipeMultiShotVideoResponse</a></code>
- <code><a href="./src/resources/recipes.ts">RecipeProductAdResponse</a></code>
- <code><a href="./src/resources/recipes.ts">RecipeProductCampaignImageResponse</a></code>
- <code><a href="./src/resources/recipes.ts">RecipeProductSwapResponse</a></code>
- <code><a href="./src/resources/recipes.ts">RecipeProductUgcResponse</a></code>

Methods:

- <code title="post /v1/recipes/marketing_stock_image">client.recipes.<a href="./src/resources/recipes.ts">marketingStockImage</a>({ ...params }) -> RecipeMarketingStockImageResponse</code>
- <code title="post /v1/recipes/multi_shot_video">client.recipes.<a href="./src/resources/recipes.ts">multiShotVideo</a>({ ...params }) -> RecipeMultiShotVideoResponse</code>
- <code title="post /v1/recipes/product_ad">client.recipes.<a href="./src/resources/recipes.ts">productAd</a>({ ...params }) -> RecipeProductAdResponse</code>
- <code title="post /v1/recipes/product_campaign_image">client.recipes.<a href="./src/resources/recipes.ts">productCampaignImage</a>({ ...params }) -> RecipeProductCampaignImageResponse</code>
- <code title="post /v1/recipes/product_swap">client.recipes.<a href="./src/resources/recipes.ts">productSwap</a>({ ...params }) -> RecipeProductSwapResponse</code>
- <code title="post /v1/recipes/product_ugc">client.recipes.<a href="./src/resources/recipes.ts">productUgc</a>({ ...params }) -> RecipeProductUgcResponse</code>

# Voices

Types:
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@runwayml/sdk",
"version": "4.1.0",
"version": "4.2.0",
"description": "The official TypeScript library for the RunwayML API",
"author": "RunwayML <dev-feedback@runwayml.com>",
"types": "dist/index.d.ts",
Expand Down
43 changes: 42 additions & 1 deletion src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,21 @@ import {
RealtimeSessionRetrieveResponse,
RealtimeSessions,
} from './resources/realtime-sessions';
import {
RecipeMarketingStockImageParams,
RecipeMarketingStockImageResponse,
RecipeMultiShotVideoParams,
RecipeMultiShotVideoResponse,
RecipeProductAdParams,
RecipeProductAdResponse,
RecipeProductCampaignImageParams,
RecipeProductCampaignImageResponse,
RecipeProductSwapParams,
RecipeProductSwapResponse,
RecipeProductUgcParams,
RecipeProductUgcResponse,
Recipes,
} from './resources/recipes';
import { SoundEffect, SoundEffectCreateParams, SoundEffectCreateResponse } from './resources/sound-effect';
import {
SpeechToSpeech,
Expand Down Expand Up @@ -816,11 +831,19 @@ export class RunwayML {
return () => controller.abort();
}

private buildBody({ options: { body, headers: rawHeaders } }: { options: FinalRequestOptions }): {
private buildBody({ options }: { options: FinalRequestOptions }): {
bodyHeaders: HeadersLike;
body: BodyInit | undefined;
} {
const { body, headers: rawHeaders } = options;
if (!body) {
// A resource method always passes a `body` key when its operation defines a
// request body, even if the caller omitted an optional body param. Keep the
// content-type for those, and only elide it for operations with no body at
// all (e.g. GET/DELETE).
if (body == null && 'body' in options) {
return this.#encoder({ body, headers: buildHeaders([rawHeaders]) });
}
return { bodyHeaders: undefined, body: undefined };
}
const headers = buildHeaders([rawHeaders]);
Expand Down Expand Up @@ -934,6 +957,7 @@ export class RunwayML {
avatarVideos: API.AvatarVideos = new API.AvatarVideos(this);
documents: API.Documents = new API.Documents(this);
realtimeSessions: API.RealtimeSessions = new API.RealtimeSessions(this);
recipes: API.Recipes = new API.Recipes(this);
voices: API.Voices = new API.Voices(this);
uploads: API.Uploads = new API.Uploads(this);
workflows: API.Workflows = new API.Workflows(this);
Expand All @@ -958,6 +982,7 @@ RunwayML.AvatarConversations = AvatarConversations;
RunwayML.AvatarVideos = AvatarVideos;
RunwayML.Documents = Documents;
RunwayML.RealtimeSessions = RealtimeSessions;
RunwayML.Recipes = Recipes;
RunwayML.Voices = Voices;
RunwayML.Uploads = Uploads;
RunwayML.Workflows = Workflows;
Expand Down Expand Up @@ -1090,6 +1115,22 @@ export declare namespace RunwayML {
type RealtimeSessionCreateParams as RealtimeSessionCreateParams,
};

export {
Recipes as Recipes,
type RecipeMarketingStockImageResponse as RecipeMarketingStockImageResponse,
type RecipeMultiShotVideoResponse as RecipeMultiShotVideoResponse,
type RecipeProductAdResponse as RecipeProductAdResponse,
type RecipeProductCampaignImageResponse as RecipeProductCampaignImageResponse,
type RecipeProductSwapResponse as RecipeProductSwapResponse,
type RecipeProductUgcResponse as RecipeProductUgcResponse,
type RecipeMarketingStockImageParams as RecipeMarketingStockImageParams,
type RecipeMultiShotVideoParams as RecipeMultiShotVideoParams,
type RecipeProductAdParams as RecipeProductAdParams,
type RecipeProductCampaignImageParams as RecipeProductCampaignImageParams,
type RecipeProductSwapParams as RecipeProductSwapParams,
type RecipeProductUgcParams as RecipeProductUgcParams,
};

export {
Voices as Voices,
type VoiceCreateResponse as VoiceCreateResponse,
Expand Down
15 changes: 15 additions & 0 deletions src/resources/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,21 @@ export {
type RealtimeSessionRetrieveResponse,
type RealtimeSessionCreateParams,
} from './realtime-sessions';
export {
Recipes,
type RecipeMarketingStockImageResponse,
type RecipeMultiShotVideoResponse,
type RecipeProductAdResponse,
type RecipeProductCampaignImageResponse,
type RecipeProductSwapResponse,
type RecipeProductUgcResponse,
type RecipeMarketingStockImageParams,
type RecipeMultiShotVideoParams,
type RecipeProductAdParams,
type RecipeProductCampaignImageParams,
type RecipeProductSwapParams,
type RecipeProductUgcParams,
} from './recipes';
export { SoundEffect, type SoundEffectCreateResponse, type SoundEffectCreateParams } from './sound-effect';
export {
SpeechToSpeech,
Expand Down
12 changes: 11 additions & 1 deletion src/resources/organization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@ export interface OrganizationRetrieveUsageResponse {
| 'happyhorse_1_0'
| 'aleph2'
| 'product_swap'
| 'product_ad'
| 'multi_shot_video'
| 'product_ugc'
| 'marketing_stock_image'
| 'product_campaign_image'
>;

results: Array<OrganizationRetrieveUsageResponse.Result>;
Expand Down Expand Up @@ -207,7 +212,12 @@ export namespace OrganizationRetrieveUsageResponse {
| 'klingO3_4k'
| 'happyhorse_1_0'
| 'aleph2'
| 'product_swap';
| 'product_swap'
| 'product_ad'
| 'multi_shot_video'
| 'product_ugc'
| 'marketing_stock_image'
| 'product_campaign_image';
}
}
}
Expand Down
Loading
Loading