You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fal category is on the model row, not an OpenAPI selector #561
Fal publishes a category on each model row (providerMetadata.category). It is not a selector on GET /v1/openapi/fal.
GET /v1/models?provider=fal (1453 models, fetched 2026-11-04) includes:
providerMetadata.category
models
image-to-image
382
video-to-video
194
text-to-image
187
image-to-video
184
text-to-video
118
text-to-audio
59
text-to-speech
41
The OpenAPI operation getProviderOpenApi accepts model and activity only. There is no category parameter.
?activity= is the closest selector, and it still 400s:
GET /v1/openapi/fal?activity=image — spec_requires_selector, model-grained, 638 endpoints
GET /v1/openapi/fal?activity=video — same, 653 endpoints
The only 200 is one model. GET /v1/openapi/fal?model=fal-ai/flux/dev is two paths on https://queue.fal.run:
POST /fal-ai/flux/dev
GET /fal-ai/flux/dev/requests/{request_id}
TanStack AI's fal client is one queue client for every model: POST https://queue.fal.run/{endpointId} and GET https://queue.fal.run/{endpointId}/requests/{requestId}. Generating one client per model (1495 of them) does not match that client. A category document would also still hit the 40-endpoint cap: the smallest large categories above are 41 to 382 endpoints.
Same model-grained refusal, no category field at all:
cloudflare-ai-gateway — 197 endpoints
reactor — 145 endpoints
Ask
Accept ?category= on GET /v1/openapi/fal, using the published providerMetadata.category.
Publish one fal queue document: model id is a path parameter, and the body schema stays the per-model schema. That is the client we can generate once.
Category documents still need the 40-endpoint cap raised, or they 400 as well.
Activity
Serve a FAL category as one queue OpenAPI document (#561)
Keep each FAL category schema on its own model id (#561)
Serve FAL as one queue document; add GET /v1/providers/{provider} (#561)
Queue document: fetch no bodies when none are emitted; anyOf; say whe…
Serve FAL as one queue OpenAPI document; add GET /v1/providers/{provi…
Serve FAL as one queue OpenAPI document; add GET /v1/providers/{provi…