{"openapi":"3.1.0","info":{"title":"Brollist API","version":"0.1.0","description":"A fully local b-roll shot-list & storyboard generator: given a video topic, generates a structured shot list across shot types using hand-curated scene templates or a generic fallback generator, plus a simple beat-by-beat storyboard outline.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://brollist.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/brollist/docs"},"termsOfService":"https://connectorbay.com/brollist/terms"},"servers":[{"url":"https://brollist.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/brollist/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/generate_shot_list":{"post":{"operationId":"generate_shot_list","summary":"Generates a structured shot list across shot types for a video topic, matching it against hand-curated","description":"Generates a structured shot list across shot types for a video topic, matching it against hand-curated\n    scene templates (interview, cooking, product review, travel vlog, workout, before/after, office, nature,\n    tutorial) or falling back to a generic topic-driven generator. Use for \"shot list for a cooking video about\n    sourdough\", \"shot list for a travel vlog in Lisbon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A video topic or scene description.","examples":["making sourdough bread","a tech product unboxing"],"minLength":1,"title":"Topic","type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Force a specific scene category instead of auto-matching the topic; see list_scene_types.","title":"Category"},"num_shots":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Trim the list to at most this many shots.","title":"Num Shots"}},"required":["topic"],"title":"generate_shot_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/generate_storyboard_outline":{"post":{"operationId":"generate_storyboard_outline","summary":"Generates a simple beat-by-beat text storyboard outline (hook, context, development, climax, resolution)","description":"Generates a simple beat-by-beat text storyboard outline (hook, context, development, climax, resolution)\n    phrased around a topic, each with a visual note. Use for \"storyboard outline for a product review video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A video topic.","examples":["a product review of a new blender"],"minLength":1,"title":"Topic","type":"string"},"num_beats":{"anyOf":[{"maximum":5,"minimum":2,"type":"integer"},{"type":"null"}],"default":null,"description":"How many storyboard beats to include (2-5).","title":"Num Beats"}},"required":["topic"],"title":"generate_storyboard_outlineArguments","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/broll_ideas_for_topic":{"post":{"operationId":"broll_ideas_for_topic","summary":"A shorter quick-idea list of b-roll shots for a topic, without the full shot-type structure. Use for","description":"A shorter quick-idea list of b-roll shots for a topic, without the full shot-type structure. Use for\n    \"b-roll ideas for a travel vlog in Lisbon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A video topic.","examples":["a travel vlog in Lisbon"],"minLength":1,"title":"Topic","type":"string"},"limit":{"default":6,"description":"How many ideas to return.","maximum":10,"minimum":1,"title":"Limit","type":"integer"}},"required":["topic"],"title":"broll_ideas_for_topicArguments","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_info":{"post":{"operationId":"shot_type_info","summary":"One shot type's purpose and a practical shooting tip. Use for \"what's a cutaway shot for\", \"when do I use","description":"One shot type's purpose and a practical shooting tip. Use for \"what's a cutaway shot for\", \"when do I use\n    an over-the-shoulder shot\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shot_type":{"description":"A shot-type name.","examples":["cutaway","over the shoulder"],"minLength":1,"title":"Shot Type","type":"string"}},"required":["shot_type"],"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/list_shot_types":{"post":{"operationId":"list_shot_types","summary":"Every shot type Brollist covers. Use for \"what shot types do you cover\".","description":"Every shot type Brollist covers. Use for \"what shot types do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_shot_typesArguments","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/list_scene_types":{"post":{"operationId":"list_scene_types","summary":"Every hand-curated scene template Brollist can match a topic against, with its tag keywords. Use for","description":"Every hand-curated scene template Brollist can match a topic against, with its tag keywords. Use for\n    \"what scene templates do you have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_scene_typesArguments","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/coverage_checklist":{"post":{"operationId":"coverage_checklist","summary":"A practical checklist for making sure a shoot captures enough footage variety to edit freely. Use for","description":"A practical checklist for making sure a shoot captures enough footage variety to edit freely. Use for\n    \"coverage checklist before I start filming\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"coverage_checklistArguments","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/shotlist_glossary":{"post":{"operationId":"shotlist_glossary","summary":"Definitions of core shot-list/editing terms: b-roll, a-roll, coverage, cutaway, insert shot, establishing","description":"Definitions of core shot-list/editing terms: b-roll, a-roll, coverage, cutaway, insert shot, establishing\n    shot, jump cut, match cut, shot list, storyboard. Use for \"what does coverage mean in filmmaking\", \"what's\n    the difference between a-roll and b-roll\".","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":"shotlist_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}}}}