{"openapi":"3.1.0","info":{"title":"Filmshot API","version":"0.1.0","description":"A fully local, hand-curated shot-type and camera-movement glossary for filmmakers: shot types, camera movements, camera angles, composition terms, genre-appropriate usage guidance, and shot-sequence suggestions.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://filmshot.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/filmshot/docs"},"termsOfService":"https://connectorbay.com/filmshot/terms"},"servers":[{"url":"https://filmshot.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/filmshot/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/shot_type_info":{"post":{"operationId":"shot_type_info","summary":"Full detail for one shot type: framing, typical use, and a concrete example. Use for \"what's a medium","description":"Full detail for one shot type: framing, typical use, and a concrete example. Use for \"what's a medium\n    close-up\", \"what does OTS mean\", \"what's an extreme wide shot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A shot type's name or abbreviation.","examples":["close-up","OTS","wide shot"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"shot_type_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/shot_type_list":{"post":{"operationId":"shot_type_list","summary":"Every named shot type with its abbreviation. Use for \"what shot types are there\", \"list camera shots\".","description":"Every named shot type with its abbreviation. Use for \"what shot types are there\", \"list camera shots\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"shot_type_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/camera_movement_info":{"post":{"operationId":"camera_movement_info","summary":"Full detail for one camera movement: how it's physically done, typical use, and the equipment involved. Use","description":"Full detail for one camera movement: how it's physically done, typical use, and the equipment involved. Use\n    for \"how do you do a dolly shot\", \"what's the difference between a pan and a truck\", \"what's a whip pan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A camera movement's name.","examples":["dolly","crane","handheld"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"camera_movement_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/camera_movement_list":{"post":{"operationId":"camera_movement_list","summary":"Every named camera movement. Use for \"what camera movements are there\", \"list types of camera movement\".","description":"Every named camera movement. Use for \"what camera movements are there\", \"list types of camera movement\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"camera_movement_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/camera_angle_info":{"post":{"operationId":"camera_angle_info","summary":"Full detail for one camera angle: how it's achieved and its typical psychological effect on the viewer. Use","description":"Full detail for one camera angle: how it's achieved and its typical psychological effect on the viewer. Use\n    for \"what does a low angle shot do\", \"what's a dutch angle used for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A camera angle's name.","examples":["low angle","dutch angle","bird's eye"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"camera_angle_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/genre_guidance":{"post":{"operationId":"genre_guidance","summary":"Genre-appropriate shot-type and camera-movement usage guidance, with recommended shots and movements, for","description":"Genre-appropriate shot-type and camera-movement usage guidance, with recommended shots and movements, for\n    horror, action, documentary, comedy, drama, corporate/interview, music video, and romance. Use for \"how should\n    I shoot a horror scene\", \"what camera movements suit an action sequence\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"genre":{"description":"A genre name.","examples":["horror","action","documentary"],"minLength":1,"title":"Genre","type":"string"}},"required":["genre"],"title":"genre_guidanceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/genre_list":{"post":{"operationId":"genre_list","summary":"Every genre this reference has usage guidance for. Use for \"what genres do you cover\".","description":"Every genre this reference has usage guidance for. Use for \"what genres do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"genre_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/shot_sequence_suggest":{"post":{"operationId":"shot_sequence_suggest","summary":"An ordered, shot-by-shot sequence suggestion for a type of scene: dialogue scene, action/chase sequence,","description":"An ordered, shot-by-shot sequence suggestion for a type of scene: dialogue scene, action/chase sequence,\n    establishing a location, or interview/talking head. Use for \"give me a shot sequence for a dialogue scene\",\n    \"how should I shoot a chase sequence\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scene_type":{"description":"A type of scene.","examples":["dialogue scene","action chase","interview"],"minLength":1,"title":"Scene Type","type":"string"}},"required":["scene_type"],"title":"shot_sequence_suggestArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/filmshot_search":{"post":{"operationId":"filmshot_search","summary":"Keyword search across every shot type, camera movement and camera angle at once. Use for \"what shots or","description":"Keyword search across every shot type, camera movement and camera angle at once. Use for \"what shots or\n    movements involve height\", \"search for tracking\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"filmshot_searchArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/composition_glossary":{"post":{"operationId":"composition_glossary","summary":"Definitions of core composition terms: rule of thirds, headroom, leading room, 180-degree rule, foreground","description":"Definitions of core composition terms: rule of thirds, headroom, leading room, 180-degree rule, foreground\n    framing, rack focus, match cut, cutaway, blocking, coverage, establishing shot, negative space. Use for \"what's\n    the rule of thirds\", \"what's leading room\", \"what's a rack focus\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"composition_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}