API REFERENCE
List Music Generations
On this page
/api/musicThe calling account's music generations, newest first. Scope follows the standard account override: with no account_id you get your own personal and organization generations; pass account_id to read another account you can access.
Authentication
x-api-key in header
bearerAuth bearer
Request
curl --request GET \
--url 'https://api.recoupable.dev/api/music' \
--header 'x-api-key: YOUR_API_KEY'Replace the YOUR_ placeholders with your values. Required query parameters are included; optional parameters are listed below.
Parameters
Query parameters
account_idstringOptional. Read another account you can access. Defaults to the calling account.
statusstring · enumOptional. Return only generations in this state.
Values: "pending", "processing", "completed", "failed"
limitintegerOptional. Maximum generations to return, newest first.
Default: 20
offsetintegerOptional. Number of generations to skip, for paging.
Default: 0
Responses
200Generations in the requested context, newest first.+
application/json
statusstring · enumStatus of the request
Values: "success"
generationsarray<MusicGeneration>Generations, newest first. Empty when the context has none.
Item properties for generations
statusstring · enumLifecycle phase. pending until the workflow picks it up, processing while fal is rendering, then completed or failed.
Values: "pending", "processing", "completed", "failed"
promptstringThe music description the song was generated from.
lyricsstringThe lyrics the song was generated from.
modelstringThe generating model.
duration_secondsnumber | nullActual length of the generated audio. Null until completed; may be shorter than requested.
audio_urlstring | nullPlayable audio URL. Null until the generation completes.
error_messagestring | nullWhy the generation failed. Null unless status is failed.
created_atstringWhen the generation was created.
format: date-time
updated_atstringWhen the generation last changed.
format: date-time
400Invalid query parameter.+
application/json
statusstring · enumrequiredAlways error
Values: "error"
missing_fieldsarray<one of>JSON path segments to the first field that failed validation, e.g. ["lyrics"]
Item properties for missing_fields
oneOf · string 1
string
oneOf · integer 2
integer
errorstringrequiredHuman-readable error message
401Unauthorized.+
application/json
statusstring · enumrequiredAlways error
Values: "error"
missing_fieldsarray<one of>JSON path segments to the first field that failed validation, e.g. ["lyrics"]
Item properties for missing_fields
oneOf · string 1
string
oneOf · integer 2
integer
errorstringrequiredHuman-readable error message
403Access denied to the specified account_id.+
application/json
statusstring · enumrequiredAlways error
Values: "error"
missing_fieldsarray<one of>JSON path segments to the first field that failed validation, e.g. ["lyrics"]
Item properties for missing_fields
oneOf · string 1
string
oneOf · integer 2
integer
errorstringrequiredHuman-readable error message
500Internal server error.+
application/json
statusstring · enumrequiredAlways error
Values: "error"
missing_fieldsarray<one of>JSON path segments to the first field that failed validation, e.g. ["lyrics"]
Item properties for missing_fields
oneOf · string 1
string
oneOf · integer 2
integer
errorstringrequiredHuman-readable error message
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download content.jsonView operation source
{
"summary": "List music generations",
"description": "The calling account's music generations, newest first. Scope follows the standard account override: with no `account_id` you get your own personal and organization generations; pass `account_id` to read another account you can access.",
"security": [
{
"apiKeyAuth": []
},
{
"bearerAuth": []
}
],
"parameters": [
{
"name": "account_id",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "uuid"
},
"description": "Optional. Read another account you can access. Defaults to the calling account."
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"pending",
"processing",
"completed",
"failed"
]
},
"description": "Optional. Return only generations in this state."
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
},
"description": "Optional. Maximum generations to return, newest first."
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 0,
"default": 0
},
"description": "Optional. Number of generations to skip, for paging."
}
],
"responses": {
"200": {
"description": "Generations in the requested context, newest first.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MusicGenerationListResponse"
}
}
}
},
"400": {
"description": "Invalid query parameter.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MusicGenerationErrorResponse"
}
}
}
},
"401": {
"description": "Unauthorized.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MusicGenerationErrorResponse"
}
}
}
},
"403": {
"description": "Access denied to the specified `account_id`.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MusicGenerationErrorResponse"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MusicGenerationErrorResponse"
}
}
}
}
}
}