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>
ParameterTypeDescription
options.categorystringFilter by category: "text", "image", "embedding", "video", "audio", etc.
options.providerstringFilter by provider: "openai", "anthropic", "google", etc.
options.featuredbooleanOnly return featured models.
options.limitnumberMaximum number of models to return.Default: 50
options.offsetnumberOffset 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>
ParameterTypeDescription
slug
required
stringModel 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"