higgsfield.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.
Files
createUploadUrl
files.createUploadUrl
Get a presigned URL to PUT an input file to yourself, and the public URL it will have. For most uses files.upload does both steps.
Risk: write
The upload URL is good for one hour. PUT the file there with every
upload_headers entry and no Higgsfield credentials.
Output
upload
files.upload
Upload an image, audio or video file from base64 and get the public URL to pass as a model input. A file already at a public https URL needs no upload: pass that URL to the model.
Risk: write
Up to 100 MB, as base64. A file already at a public https URL needs no upload, since model inputs take public URLs. Uploaded files are deleted within seven days.
Output
Generations
estimate
generations.estimate
What a generation with these inputs would cost, in US dollars and credits. Free; nothing runs.
Risk: read
Free. Takes the same
input as a generation, so the price reflects the duration, resolution and batch size you ask for.
Output
run
generations.run
Generate and wait up to waitSeconds (default 10, at most 15) for the output; spends account balance when it completes. Answers like requests.status: queued or in_progress is a job to follow with requests.status, and video usually takes longer than the wait. Outputs expire after 7 days by default.
Risk: write
Spends account balance when the request completes. The wait counts from the start of the submit. Once Higgsfield has accepted the request, this never throws. A status read that fails or runs late answers the request as it last stood. As with
generations.submit, a caller that replays a step or starts a new script must pass its own idempotencyKey to be safe across attempts.
Output
images full type
images full type
video full type
video full type
audio full type
audio full type
audios full type
audios full type
submit
generations.submit
Queue a generation (image, video…) and get a request id back at once; spends account balance when it completes. Follow it with requests.status until it is completed, failed, nsfw or canceled, or pass webhookUrl. Outputs expire after 7 days by default. Repeating with the returned idempotency_key is never charged twice.
Risk: write
Spends account balance when the request completes.
status here is an acceptance receipt, and a repeat with the same key can say queued for a request that has since finished, so read requests.status for where it stands. Reusing a key with a different modelPath, input, webhookUrl or expiresAfter is a 422. A workflow step that can replay, or a script that can start again, must pass its own idempotencyKey, because a generated key only covers retries inside one call.
Output
Models
get
models.get
One model by its path, with its input fields (input_schema). Read this before a generation: every model takes its own fields.
Risk: read
Fetches the whole list with schemas, since the route has no single-model form.
Output
list
models.list
Find Higgsfield models by text, output type or operation; includeSchema adds their input fields
Risk: read
Reads
GET /models, which answers with the API key but isn’t in Higgsfield’s docs. search is free text. A model on Higgsfield’s docs site can still answer even if it isn’t listed, and the other way round.
Output
items full type
items full type
Requests
cancel
requests.cancel
Cancel a request that is still queued and refund it. Once it has started it cannot be canceled, and this errors.
Risk: write
Only works while the request is queued, and a canceled request is refunded. Once it has started, or after it has finished, Higgsfield answers 400 and this throws.
Output
delete
requests.delete
Delete a finished request’s files, prompt and parameters now. Billing records stay. A request still running gets a 409.
Risk: destructive · Irreversible
Deletes the request’s files, prompt and parameters for good, and billing records stay. A request still queued or running gets a 409. Deleting one that is already gone still answers
deleted.
Output
status
requests.status
Where a request stands, with its output URLs once completed. Output URLs stop working at expires_at, 7 days after it finished by default.
Risk: read
A request ended by moderation says
nsfw, not failed. Some video and 3D operations add artifacts such as zip, mov, jsx, fbx or ply, which come through as extra fields.
Output
images full type
images full type
video full type
video full type
audio full type
audio full type
audios full type
audios full type
Usage
get
usage.get
Completed generations and their estimated cost by model and time bucket. For monitoring: it can lag and is not a billing record.
Risk: read
Estimated cost of completed generations, grouped by time bucket and model. Data can lag and may not include every request, so it is not a billing record. The range is at most 31 days.
Output
time_series full type
time_series full type