Browse
rw.models() / rw.model()
List available models or get details for a specific one. Filter by category, provider, or featured status.
rw.models()
TypeScript
rw.models(options?: ModelListOptions): Promise<ModelListResponse>| Parameter | Type | Description |
|---|---|---|
options.category | string | Filter by category: "text", "image", "embedding", "video", "audio", etc. |
options.provider | string | Filter by provider: "openai", "anthropic", "google", etc. |
options.featured | boolean | Only return featured models. |
options.limit | number | Maximum number of models to return.Default: 50 |
options.offset | number | Offset for pagination.Default: 0 |
Response
TypeScript
interface ModelListResponse {
object: "list";
data: Model[];
has_more: boolean;
total: number;
}Examples
TypeScript
// List all image models
const imageModels = await rw.models({ category: "image" });
console.log(imageModels.total); // 15
// List featured models with limit
const featured = await rw.models({ featured: true, limit: 10 });
// Filter by provider
const openaiModels = await rw.models({ provider: "openai" });
// Paginate
const page2 = await rw.models({ limit: 20, offset: 20 });rw.model()
TypeScript
rw.model(slug: string): Promise<Model>| Parameter | Type | Description |
|---|---|---|
slugrequired | string | Model slug, e.g. "flux-schnell", "gpt-4o" |
Model object
TypeScript
interface Model {
id: string;
object: "model";
created: number;
owned_by: string;
name: string;
description: string;
category: string;
provider_model_id: string;
image?: string;
pricing: {
credit_cost_input_per_1k: number;
credit_cost_output_per_1k: number;
credit_cost_fixed: number;
currency: string;
};
capabilities: Record<string, unknown>;
metadata: Record<string, unknown>;
}Example
TypeScript
const model = await rw.model("flux-schnell");
console.log(model.name); // "Flux Schnell"
console.log(model.category); // "image"
console.log(model.pricing); // { credit_cost_fixed: 5, ... }
console.log(model.owned_by); // "black-forest-labs"