{"openapi":"3.1.0","info":{"title":"SFXForge AI API","version":"0.1.0","description":"Generate game sound effects with SFXForge AI from AI agents, scripts and CI.\n\n## Authentication\n\nCreate an API key in the dashboard under **API keys** and send it as a bearer token:\n\n```\nAuthorization: Bearer sfx_…\n```\n\nA key is shown only once, when it's created. Keys can expire (30, 90 or 365 days) or last until you revoke them. Requests with an unknown, revoked or expired key return `401`; routes a key can't use return `403`.\n\n## MCP\n\nAI agents can use the same features through the MCP server at `/api/mcp` (Streamable HTTP), with an API key as the bearer token. The server reports its version in `serverInfo.version` (currently 1.3.0, semver: a new major version means a tool changed incompatibly) and supports MCP protocol revisions up to 2025-11-25.\n\n### Claude Code\n\n```\nclaude mcp add --transport http sfxforge https://api.sfxforgeai.com/api/mcp --header \"Authorization: Bearer sfx_…\"\n```\n\n### Codex\n\nPut the key in the `SFXFORGE_API_KEY` environment variable, then:\n\n```\ncodex mcp add sfxforge --url https://api.sfxforgeai.com/api/mcp --bearer-token-env-var SFXFORGE_API_KEY\n```\n\n### Other MCP clients\n\nConnect to `https://api.sfxforgeai.com/api/mcp` over Streamable HTTP and send the key in an `Authorization: Bearer sfx_…` header.\n\n## Credits\n\nEvery generation spends credits from your balance; the cost depends on its duration, which is a whole number of seconds from 1 to 60. Check the balance with `GET /credits/balance`. A key can also have a limit of credits per rolling 24 hours, set in the dashboard: a generation that would go over it returns `429`. Generating needs the latest Terms to be accepted on the website once.\n\n## Example\n\n```\ncurl https://api.sfxforgeai.com/api/generations/generate \\\n  -H \"Authorization: Bearer $SFXFORGE_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"data\": {\"prompt\": \"sword clash with a metallic ring\", \"durationSeconds\": 2}}'\n```\n\nGenerations are queued, so this answers `202` right away with the sound's `documentId` and `status: \"queued\"` (and its `queuePosition`). Poll `GET /generations/{id}` every couple of seconds until `status` is `completed`, then get a download URL with `GET /generations/{id}/download`. A `failed` generation has its credits refunded. A user can only have a few sounds queued or generating at once (`meta.generating` and `meta.maxGenerating` of `GET /generations`); more return `429`."},"servers":[{"url":"/api"}],"tags":[{"name":"Sounds","description":"Generate sound effects, list them, download their audio, move and delete them."},{"name":"Folders","description":"Organise sounds in folders."},{"name":"Credits","description":"Check the balance and history of the credits generations spend."}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"sfx_…","description":"Personal API key created in the SFXForge AI dashboard under API keys."}},"schemas":{"ApiGenerationGenerationDocument":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"documentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The document ID, represented by a UUID"},"id":{"anyOf":[{"type":"string"},{"type":"number"}]},"name":{"description":"A string field","type":"string"},"prompt":{"description":"A text field","type":"string"},"duration":{"description":"A decimal field","type":"number"},"waveform":{"description":"A JSON field"},"loop":{"description":"A boolean field","anyOf":[{"type":"boolean"},{"type":"null"}]},"generationStatus":{"description":"An enum field","type":"string","enum":["queued","processing","completed","failed"]},"apiKeyName":{"description":"A string field","type":"string"},"apiKeyPreview":{"description":"A string field","type":"string"},"createdAt":{"description":"A datetime field","type":"string"},"updatedAt":{"description":"A datetime field","type":"string"},"publishedAt":{"default":"2026-10-06T19:58:04.517Z","description":"A datetime field","type":"string"},"media":{"description":"A media field","$ref":"#/components/schemas/PluginUploadFileDocument"}},"required":["documentId","id","publishedAt"],"additionalProperties":false},"PluginUploadFileDocument":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"documentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The document ID, represented by a UUID"},"id":{"anyOf":[{"type":"string"},{"type":"number"}]},"name":{"description":"A string field","type":"string"},"alternativeText":{"description":"A text field","type":"string"},"caption":{"description":"A text field","type":"string"},"focalPoint":{"description":"A JSON field"},"width":{"description":"An integer field","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"description":"An integer field","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"formats":{"description":"A JSON field"},"hash":{"description":"A string field","type":"string"},"ext":{"description":"A string field","type":"string"},"mime":{"description":"A string field","type":"string"},"size":{"description":"A decimal field","type":"number"},"url":{"description":"A text field","type":"string"},"previewUrl":{"description":"A text field","type":"string"},"provider":{"description":"A string field","type":"string"},"provider_metadata":{"description":"A JSON field"},"createdAt":{"description":"A datetime field","type":"string"},"updatedAt":{"description":"A datetime field","type":"string"},"publishedAt":{"default":"2026-10-06T19:58:04.600Z","description":"A datetime field","type":"string"},"related":{}},"required":["documentId","id","name","hash","mime","size","url","provider","publishedAt","related"],"additionalProperties":false}}},"paths":{"/credits/balance":{"get":{"operationId":"credit/get/credits_balance","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"balance":{"type":"number","description":"Sum of the caller's credits, holds of running generations included."}},"required":["balance"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Credits"]}},"/credits/history":{"get":{"operationId":"credit/get/credits_history","parameters":[{"name":"page","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","default":1,"description":"1-based page number.","type":"integer","minimum":1,"maximum":9007199254740991},"x-strapi-serialize":"querystring"},{"name":"pageSize","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","default":20,"description":"Entries per page (max 100).","type":"integer","minimum":1,"maximum":100},"x-strapi-serialize":"querystring"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"documentId":{"type":"string"},"amount":{"type":"number","description":"Credits added (positive) or spent (negative)."},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["purchase","generation","deleted","trial","withdrawal","refund","chargeback"],"description":"purchase: credits bought; generation: spent on a generation; deleted: spent on a generation since deleted; trial: free credits claimed after verifying the email; withdrawal: credits of a purchase the user withdrew from."},"generation":{"anyOf":[{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["documentId","name","prompt"],"additionalProperties":false},{"type":"null"}],"description":"Generation the credits were spent on; null for grants, generations still running and deleted generations."},"purchase":{"anyOf":[{"type":"object","properties":{"documentId":{"type":"string"},"packName":{"type":"string"}},"required":["documentId","packName"],"additionalProperties":false},{"type":"null"}],"description":"Purchase a purchase or withdrawal entry belongs to; null otherwise."}},"required":["documentId","amount","createdAt","status","generation","purchase"],"additionalProperties":false},"description":"Newest first."},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"page":{"type":"number"},"pageSize":{"type":"number"},"total":{"type":"number"}},"required":["page","pageSize","total"],"additionalProperties":false}},"required":["pagination"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Credits"]}},"/credits/trial":{"get":{"operationId":"credit/get/credits_trial","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"amount":{"type":"number","description":"Free credits a verified account can claim once."},"claimable":{"type":"boolean","description":"True when the email is confirmed and the credits have not been claimed yet."}},"required":["amount","claimable"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Credits"]}},"/generations":{"get":{"operationId":"generation/get/generations","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"file":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","description":"File name, e.g. sword-clash_3s.mp3 or sword-clash_3s.wav."},"ext":{"anyOf":[{"type":"string"},{"type":"null"}]},"mime":{"type":"string"},"size":{"type":"number","description":"Size in KB."}},"required":["name","ext","mime","size"],"additionalProperties":false},{"type":"null"}],"description":"Metadata of the audio file; get a download URL through /generations/{id}/download."},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Playback length in seconds; null until computed."},"waveform":{"anyOf":[{"minItems":128,"maxItems":128,"type":"array","items":{"type":"integer","minimum":0,"maximum":1000}},{"type":"null"}],"description":"128 peak values from 0 to 1000, loudest = 1000; null until computed."},"status":{"type":"string","enum":["queued","processing","completed","failed"],"description":"queued and processing: no file yet; completed: ready to download; failed: credits refunded, listed until deleted or for a day."},"queuePosition":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Place in the queue, 1 = next; null unless queued."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why it failed; null unless failed."}},"required":["documentId","name","prompt","createdAt","file","duration","waveform","status","queuePosition","error"],"additionalProperties":false}},"meta":{"type":"object","properties":{"generating":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Sounds the user has queued or generating."},"maxGenerating":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many sounds the user can have queued or generating at once; generating more returns 429."}},"required":["generating","maxGenerating"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Sounds"]}},"/generations/{id}/download":{"get":{"operationId":"generation/get/generations_by_id_download","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of the generation to download."}},{"name":"attachment","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"true signs the URL so the browser saves the file instead of playing it.","type":"string","enum":["true","false"]},"x-strapi-serialize":"querystring"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"url":{"type":"string","description":"Signed URL of the audio file. Expires (15 minutes by default); request a new one when needed."},"fileName":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","description":"Size in KB."}},"required":["url","fileName","mime","size"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Sounds"]}},"/generations/generate":{"post":{"operationId":"generation/post/generations_generate","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"status":{"type":"string","enum":["queued","processing","completed","failed"],"description":"queued: waiting its turn; processing: generating; completed: ready to download; failed: credits refunded."},"queuePosition":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Place in the queue, 1 = next; null unless queued."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why it failed; null unless failed."},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"type":"boolean"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Playback length in seconds; null until completed."},"waveform":{"anyOf":[{"minItems":128,"maxItems":128,"type":"array","items":{"type":"integer","minimum":0,"maximum":1000}},{"type":"null"}],"description":"128 peak values from 0 to 1000; null until completed."}},"required":["documentId","status","queuePosition","error","name","prompt","loop","duration","waveform"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Sounds"],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"description":"Text description of the sound effect to generate."},"durationSeconds":{"type":"integer","minimum":1,"maximum":60,"description":"Length of the sound effect in whole seconds (1-60). Fractional values are rejected."},"loop":{"description":"Whether the sound effect should loop seamlessly.","type":"boolean"},"format":{"description":"File format of the audio: mp3 (default) or wav. Both cost the same.","type":"string","enum":["mp3","wav"]},"folder":{"anyOf":[{"type":"string","minLength":1,"description":"documentId of a folder owned by the user to put the generation in. Omit to keep it at the root."},{"type":"null"}]}},"required":["prompt","durationSeconds"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}},"/generations/{id}":{"get":{"operationId":"generation/get/generations_by_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of the generation, as returned by POST /generations/generate."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"status":{"type":"string","enum":["queued","processing","completed","failed"],"description":"queued: waiting its turn; processing: generating; completed: ready to download; failed: credits refunded."},"queuePosition":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Place in the queue, 1 = next; null unless queued."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why it failed; null unless failed."},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"type":"boolean"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Playback length in seconds; null until completed."},"waveform":{"anyOf":[{"minItems":128,"maxItems":128,"type":"array","items":{"type":"integer","minimum":0,"maximum":1000}},{"type":"null"}],"description":"128 peak values from 0 to 1000; null until completed."}},"required":["documentId","status","queuePosition","error","name","prompt","loop","duration","waveform"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Sounds"]},"delete":{"operationId":"generation/delete/generations_by_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of the generation to delete."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["documentId","name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Sounds"]}},"/generations/{id}/move":{"post":{"operationId":"generation/post/generations_by_id_move","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of the generation to move."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The document ID, represented by a UUID"},"id":{"anyOf":[{"type":"string"},{"type":"number"}]},"name":{"description":"A string field","type":"string"},"prompt":{"description":"A text field","type":"string"},"duration":{"description":"A decimal field","type":"number"},"waveform":{"description":"A JSON field"},"loop":{"description":"A boolean field","anyOf":[{"type":"boolean"},{"type":"null"}]},"generationStatus":{"description":"An enum field","type":"string","enum":["queued","processing","completed","failed"]},"apiKeyName":{"description":"A string field","type":"string"},"apiKeyPreview":{"description":"A string field","type":"string"},"createdAt":{"description":"A datetime field","type":"string"},"updatedAt":{"description":"A datetime field","type":"string"},"publishedAt":{"default":"2026-10-06T19:58:05.504Z","description":"A datetime field","type":"string"},"media":{"description":"A media field","$ref":"#/components/schemas/PluginUploadFileDocument"}},"required":["documentId","id","publishedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Sounds"],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"folder":{"anyOf":[{"type":"string","minLength":1,"description":"documentId of a folder owned by the user to move the generation into, or null to move it to the root."},{"type":"null"}]}},"required":["folder"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}},"/generation-folders/tree":{"get":{"operationId":"generation-folder/get/generation_folders_tree","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"folders":{"type":"array","items":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"parent":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"documentId of the parent folder, or null at the root."}},"required":["documentId","name","parent"],"additionalProperties":false},"description":"All of the user's folders, at any depth, sorted by name."},"generations":{"type":"array","items":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"fileName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the audio file; get a download URL through /generations/{id}/download."},"folder":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"documentId of the folder holding the generation, or null at the root."},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Playback length in seconds; null until computed."},"waveform":{"anyOf":[{"minItems":128,"maxItems":128,"type":"array","items":{"type":"integer","minimum":0,"maximum":1000}},{"type":"null"}],"description":"128 peak values from 0 to 1000, loudest = 1000; null until computed."},"status":{"type":"string","enum":["queued","processing","completed"],"description":"queued and processing: still generating, no audio yet; completed: ready to download."},"queuePosition":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Place in the queue, 1 = next; null unless queued."}},"required":["documentId","name","fileName","folder","duration","waveform","status","queuePosition"],"additionalProperties":false},"description":"All of the user's generations, sorted by name."}},"required":["folders","generations"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Folders"]}},"/generation-folders":{"post":{"operationId":"generation-folder/post/generation_folders","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["documentId","name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Folders"],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the folder."},"parent":{"anyOf":[{"type":"string","minLength":1,"description":"documentId of a folder owned by the user to create the folder in. Omit to create it at the root."},{"type":"null"}]}},"required":["name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}},"/generation-folders/{id}":{"put":{"operationId":"generation-folder/put/generation_folders_by_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of a folder owned by the user."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["documentId","name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Folders"],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the folder."}},"required":["name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}},"delete":{"operationId":"generation-folder/delete/generation_folders_by_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of a folder owned by the user."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["documentId","name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Folders"]}},"/generation-folders/{id}/move":{"post":{"operationId":"generation-folder/post/generation_folders_by_id_move","parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"description":"documentId of a folder owned by the user."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"documentId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["documentId","name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"500":{"description":"Internal server error"}},"tags":["Folders"],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"parent":{"anyOf":[{"type":"string","minLength":1,"description":"documentId of a folder owned by the user to move the folder into, or null to move it to the root."},{"type":"null"}]}},"required":["parent"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}}}}