Kinoseed

Endpoints

Files

Runs take their inputs as URLs. When the picture is on your disk rather than on the web, upload it here first and pass the URL that comes back.

When to upload

  • The file is local, private, or behind a login. The API only fetches public https URLs and refuses anything else with unsafe_url; a URL returned by this endpoint is always accepted.
  • Use the returned url as startImageUrl, endImageUrl or an entry of referenceImageUrls on POST /videos and POST /images.
  • Send it as multipart/form-data with the file in a field named file. Uploading is free.

Upload an input file

post/api/v1/files

Bearer keyfiles:writeuploadFile

Store an image, audio or video file (up to 200 MB) and get back a URL that POST /images and POST /videos accept as a reference or frame. Needs files:write.

curl -X POST https://kinoseed.app/api/v1/files \
  -H "Authorization: Bearer ks_live_YOUR_KEY" \
  -F "file=@./mug.png"

Request body

multipart/form-data

FieldTypeRequiredDescription
filestring (binary)yesAn image (png, jpeg, webp, gif), audio or video file, up to 200 MB.

Responses

StatusBodyMeaning
201FileUploadResponseStored.
400ErrorEnvelopeNot multipart, no file field, too large (413) or an unsupported type (415).
401ErrorEnvelopeMissing, invalid or revoked key.
403ErrorEnvelopeThe key lacks files:write.
429ErrorEnvelopeOver a rate budget; see Retry-After. Also too_many_running when the account already has 5 runs in progress.
503ErrorEnvelopeStorage is not available right now.

Response fields

The 201 body.

FieldTypeDescription
urlstring (uri)
sizeinteger
typestringe.g. "image/png"