Skip to content

Projects and references

GET /projects lists owned projects. POST /projects creates one with { "name": "November campaign" }, projects:write scope and a UUID Idempotency-Key. The response includes project.id.

Use GET /projects/{id} to retrieve, PATCH /projects/{id} with { "name": "New name" } to rename, and DELETE /projects/{id} to remove. Projects with pending jobs or in-use references are protected; 409 means wait rather than force deletion.

If generation projectId is omitted, Infinity Flow uses the account’s default project. Knowing another account’s project or file ID never grants access to it.

The API accepts JSON with projectId, filename and plain base64 data, without a data:image/... prefix. The limit is 8 MB decoded. File type is validated from content, not just its extension.

{
"projectId": "6aedffb0-cead-4387-9fae-5201fd1679f1",
"filename": "character.png",
"data": "FILE_BASE64_CONTENT"
}

Send to POST /references with references:write and a UUID Idempotency-Key. The response contains reference.id; place it in a generation’s referenceIds. Reusing the same key with different bytes or metadata is a conflict.

Files are private. Arbitrary remote URL import is not supported. Avoid inserting large files into an assistant’s prompt; upload using code and supply the resulting reference ID.

GET /references lists up to 100 references; GET /references/{id} retrieves metadata. DELETE /references/{id} removes an image that is not used by pending work.

The current reference library supports up to 32 saved images and 128 MB total. Remove unused images before uploading more. References used by accepted jobs remain protected even if a project is modified elsewhere.