Skip to main content

Generate content

TypeScript
const res = await client.generate('google/nano-banana', {
  generation_prompt: 'A cute baby seal on the beach at sunset',
  generation_ratio: '16:9',
  generation_output_format: 'webp',
});

console.log(res.data.generation_id);
console.log(res.data.generation_prediction_id);
console.log(res.data.generation_provider_order);
console.log(res.data.generation_initialized);

Parameters

generation_prompt
string
Text prompt for file generation.
generation_ratio
string
Aspect ratio.
generation_output_format
string
Output format.
generation_output_number
number
Number of outputs to generate, always 1.
generation_input_file
string[]
Array of public URLs for input files.
generation_provider_order
string
Provider priority.
ParameterTypeRequiredDescription
generation_promptstringYesText prompt for file generation
generation_ratiostringNoAspect ratio
generation_output_formatstringNoOutput format
generation_output_numbernumberNoNumber of outputs to generate, always 1
generation_input_filestring[]NoArray of public URLs for input files
generation_provider_orderstringNoProvider priority

Provider order

By default, BabySea selects the best provider automatically with failover. You can override:
TypeScript
const res = await client.generate('google/nano-banana', {
  generation_prompt: 'Ocean waves',
  generation_provider_order: 'fal, replicate',
});

Model-specific parameters

Some models accept extra parameters beyond the standard schema. Pass them directly:
TypeScript
const res = await client.generate('some/model', {
  generation_prompt: 'A landscape',
  custom_param: 'value',  // model-specific
});
Check client.library.models() for each model’s specific_schema to see available extras.

Image management

Cancel generation

Cancel an in-progress generation.
TypeScript
const res = await client.cancelGeneration('...');

console.log(res.data.credits_refunded); // true or false

Delete generation

Delete a generation record.
TypeScript
const res = await client.deleteGeneration('...');

Generation details

Get a generation details by ID.
TypeScript
const res = await client.getGeneration('...');

console.log(res.data.generation_id);
console.log(res.data.generation_status);
console.log(res.data.generation_output_file);

List generations

List generations with pagination (get all generation details).
TypeScript
// Default: first 50 generations
const res = await client.listGenerations();

// Custom pagination
const page2 = await client.listGenerations({ limit: 20, offset: 20 });

console.log(res.total);   // total count
console.log(res.limit);
console.log(res.offset);
ParameterTypeDefaultDescription
limitnumber50Page size (1–100)
offsetnumber0Number of items to skip

Cost estimate

Get a cost estimate before generating.
TypeScript
// Single generation estimate
const res = await client.estimate('google/nano-banana');

// Multi-generation estimate
const res5 = await client.estimate('google/nano-banana', 5);

console.log(res5.data.cost_per_generation);
console.log(res5.data.cost_total_consumed);
console.log(res5.data.credit_balance);
console.log(res5.data.credit_balance_can_afford);
console.log(res5.data.credit_balance_max_affordable);
ParameterTypeDefaultDescription
modelstringRequired, model identifier
countnumber1Number of generations to estimate (1–100)

API

API status

Verify your API key and get key metadata.
TypeScript
const res = await client.status();

console.log(res.data.account_id);
console.log(res.data.apikey_prefix);
console.log(res.data.apikey_name);
console.log(res.data.apikey_expires_at);

API usage

Get usage analytics for the last N days.
TypeScript
// Default: last 30 days
const res = await client.usage();

// Custom: last 7 days
const res7 = await client.usage(7);

console.log(res.data.usage_credit_balance);
console.log(res.data.usage_total_requests);
console.log(res.data.usage_total_generations);
console.log(res.data.usage_total_estimated_cost);

// Per-endpoint breakdown
for (const ep of res.data.usage_endpoints) {
  console.log(ep.endpoint);
  console.log(ep.total_requests);
  console.log(ep.success_count);
  console.log(ep.error_codes);
}

// Per-provider breakdown
for (const prov of res.data.usage_providers) {
  console.log(prov.provider);
  console.log(prov.total_submissions);
  console.log(prov.total_estimated_cost);
}

User

Account profile

Get account details.
TypeScript
const res = await client.account();

console.log(res.data.account_name);
console.log(res.data.account_email);
console.log(res.data.account_is_personal);

Billing data

Get subscription info and credit balance.
TypeScript
const res = await client.billing();

console.log(res.data.billing_plan);
console.log(res.data.billing_credit_balance);
console.log(res.data.billing_subscription_status);
console.log(res.data.billing_period_ends_at);

Library

Available models

Model catalog and provider profiles.
TypeScript
// Model catalog
const res = await client.library.models();

console.log(res.data.models_total);

for (const model of res.data.models) {
  console.log(model.model_identifier);
  console.log(model.model_pricing);
  console.log(model.model_supported_provider);
  console.log(model.schema.generation_ratio);
  console.log(model.schema.generation_output_format);
}

// Provider catalog
const providers = await client.library.providers();
console.log(providers.data.providers_total);

Health

Infrastructure and provider health checks.
TypeScript
// Provider health (circuit breaker states)
const providers = await client.health.providers();

for (const provider of providers.data.providers) {
  console.log(provider.provider);     // 'replicate' | 'fal'
  console.log(provider.status);       // 'healthy' | 'recovering' | 'degraded' | 'unknown'
  console.log(provider.failure_rate);
}

// Model availability
const models = await client.health.models();

// Cache health
const cache = await client.health.cache();
console.log(cache.data.latency_ms);

// Storage health
const storage = await client.health.storage();
console.log(storage.data.latency_ms);