Generate content
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
Text prompt for file generation.
Number of outputs to generate, always 1.
Array of public URLs for input files.
generation_provider_order
Provider priority.
| Parameter | Type | Required | Description |
|---|
generation_prompt | string | Yes | Text prompt for file generation |
generation_ratio | string | No | Aspect ratio |
generation_output_format | string | No | Output format |
generation_output_number | number | No | Number of outputs to generate, always 1 |
generation_input_file | string[] | No | Array of public URLs for input files |
generation_provider_order | string | No | Provider priority |
Provider order
By default, BabySea selects the best provider automatically with failover. You can override:
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:
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.
const res = await client.cancelGeneration('...');
console.log(res.data.credits_refunded); // true or false
Delete generation
Delete a generation record.
const res = await client.deleteGeneration('...');
Generation details
Get a generation details by ID.
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).
// 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);
| Parameter | Type | Default | Description |
|---|
limit | number | 50 | Page size (1–100) |
offset | number | 0 | Number of items to skip |
Cost estimate
Get a cost estimate before generating.
// 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);
| Parameter | Type | Default | Description |
|---|
model | string | — | Required, model identifier |
count | number | 1 | Number of generations to estimate (1–100) |
API
API status
Verify your API key and get key metadata.
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.
// 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.
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.
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.
// 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.
// 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);