Choose a model
The reasoning model handles the conversation. Generation models produce images, video, audio, and 3D media.models.listAgentModels() returns reasoning model IDs, labels, and optional tags.
Set general.defaultModel to an available ID. Use null to restore the service default.
model. This leaves the saved default unchanged:
fal.generation_settings_overrides for generation choices on one response:
403.
Use fal.generation_settings when submitting a complete settings snapshot from settings.conversations.retrieve(conversationId).
Search generation models with models.list({ keywords, categories, page, limit }).
The page starts at 1. The default limit is 40, with a maximum of 100.
The result contains items and optional total, page, size, and pages fields.
id, modelId, title, category, shortDescription, thumbnailUrl, and isFavorited flag.
An optional modelLabId identifies its provider.
Capabilities describe the endpoint’s fields. Each field has a name, label, type, description, and required flag.
A field can include a defaultValue and additional schema properties.
Use these values to build controls. Do not assume that every model accepts the same options.
Set generation defaults
Defaults apply at three scopes. A conversation inherits project defaults, which inherit personal defaults. Use the returnedsources to identify the effective source of each field.
A defaults read returns these fields:
Use
expectedLocal to detect a concurrent edit. Send the local object from your last read.
changes sets the supplied fields. Omitted fields retain their local values.
A null value selects automatic behavior at this scope. It does not restore inheritance.
Use inherit to remove a local override:
changes.preferredModels or inherit.preferredModels with a generation task name.
A selected endpoint must support that task.
Generation tasks are
text-to-image, text-to-video, image-to-video, music, text-to-speech, sound-effects, and image-to-3d.
A model’s capabilities can restrict which preference values it supports.
Source values are personal, project, chat, generation, and auto.
Change generation settings
Usesettings.conversations for a conversation and settings.projects for a project.
Both expose retrieve(id) and update(id, { settings, expectedRevision }).
An update sends the complete settings object. Preserve fields that you do not intend to change.
Use
settings.defaults.update for inherited preferences and model defaults.
Use the complete settings update for groups and reviewBeforeGenerating.
On 409, read the settings again and apply your changes to that version before submitting another update.
Update account preferences
preferences.retrieve() returns the account preferences.
preferences.update(section, input) changes supplied fields within one section and returns the updated preferences.
Arrays replace the corresponding array. An omitted field stays unchanged.
General
The type reference lists every voice and profession value.
A model or setting unavailable to the account returns
403.
Cost
The threshold requests approval. It is not a hard spending limit.
Skills
The disabled lists default to empty arrays.
Use skills methods to discover, install, edit, or enable individual skills.
Notifications
turnComplete controls completion notifications in the fal Agent interface. It defaults to true.
This preference does not deliver a webhook or send notifications from your application.