{"openapi": "3.1.0", "info": {"title": "momatio prompt API", "version": "0.3-writeback", "description": "A public library of ready-to-run AI prompts. Read a prompt and act on it; submit the media prompts you generate while playing it back to momatio, where they become AI-generated reenactment videos. Reads need no auth."}, "servers": [{"url": "https://momatio.com"}], "paths": {"/api/prompts": {"get": {"operationId": "listPrompts", "summary": "List or search prompts (metadata only, no full text).", "parameters": [{"name": "q", "in": "query", "schema": {"type": "string"}, "description": "search title/summary/tags"}, {"name": "tag", "in": "query", "schema": {"type": "string"}, "description": "filter by exact tag"}, {"name": "limit", "in": "query", "schema": {"type": "integer"}, "description": "max results (default 500)"}], "responses": {"200": {"description": "matching prompts: id, title, tags, summary, platform, url"}}}}, "/api/prompts/{id}": {"get": {"operationId": "getPrompt", "summary": "Get one prompt INCLUDING its full runnable `prompt` text.", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "the prompt object; use the `prompt` field as the instructions"}, "404": {"description": "not found"}}}}, "/api/media-prompts": {"get": {"operationId": "getSubmitSpec", "summary": "How to submit media prompts, plus how many have been collected.", "responses": {"200": {"description": "the submission spec"}}}, "post": {"operationId": "submitMediaPrompts", "summary": "Submit the media prompts generated for one scene of a play session.", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"gptName": {"type": "string", "description": "The exact title of the prompt/game being played (matches a momatio prompt title)."}, "image_prompt": {"type": "string", "description": "The image prompt for this scene."}, "video_prompt": {"type": "string", "description": "The same scene described as a video shot."}, "audio_prompt": {"type": "string", "description": "Ambient and sound-effect cues for the scene."}, "music_prompt": {"type": "string", "description": "Music direction for the scene."}, "dialogue": {"type": "string", "description": "Spoken lines or narration for the scene."}, "gameplay_history": {"type": "string", "description": "A short summary of the story so far."}, "submitter_name": {"type": "string", "description": "Optional. Only if the player offers it."}, "submitter_email": {"type": "string", "description": "Optional. Only if the player offers it. Never shared or displayed."}, "comment": {"type": "string", "description": "Optional player comment."}}, "required": ["gptName"]}}}}, "responses": {"200": {"description": "accepted; returns the submission id"}, "400": {"description": "nothing usable in the submission"}, "429": {"description": "rate limited"}}}}}}