{"openapi":"3.1.0","info":{"title":"Thumbclick API","version":"0.1.0","description":"A fully local thumbnail & title CTR craft reference: genuine effectiveness principles and title patterns framed around deliverable craft rather than manipulative clickbait tactics, a pre-publish checklist, and original heuristic checkers for title/thumbnail redundancy and clickbait-vs-curiosity.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://thumbclick.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/thumbclick/docs"},"termsOfService":"https://connectorbay.com/thumbclick/terms"},"servers":[{"url":"https://thumbclick.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/thumbclick/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/principle_info":{"post":{"operationId":"principle_info","summary":"One thumbnail/title effectiveness principle's description, why it matters, and how to apply it. Use for","description":"One thumbnail/title effectiveness principle's description, why it matters, and how to apply it. Use for\n    \"why do faces work well in thumbnails\", \"what does text legibility mean for thumbnails\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"principle":{"description":"A thumbnail/title effectiveness principle.","examples":["contrast","faces and expression","text legibility"],"minLength":1,"title":"Principle","type":"string"}},"required":["principle"],"title":"principle_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_principles":{"post":{"operationId":"list_principles","summary":"Every thumbnail/title effectiveness principle Thumbclick covers. Use for \"what principles do you","description":"Every thumbnail/title effectiveness principle Thumbclick covers. Use for \"what principles do you\n    cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_principlesArguments","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/title_pattern_info":{"post":{"operationId":"title_pattern_info","summary":"One title structure pattern's example and why it works. Use for \"what's a good title pattern for a","description":"One title structure pattern's example and why it works. Use for \"what's a good title pattern for a\n    listicle\", \"explain the curiosity gap title pattern\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pattern":{"description":"A title structure pattern.","examples":["listicle","curiosity gap","how-to"],"minLength":1,"title":"Pattern","type":"string"}},"required":["pattern"],"title":"title_pattern_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_title_patterns":{"post":{"operationId":"list_title_patterns","summary":"Every title structure pattern Thumbclick covers. Use for \"what title patterns do you cover\".","description":"Every title structure pattern Thumbclick covers. Use for \"what title patterns do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_title_patternsArguments","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/thumbnail_checklist":{"post":{"operationId":"thumbnail_checklist","summary":"A practical pre-publish checklist for thumbnail effectiveness. Use for \"checklist before I publish this","description":"A practical pre-publish checklist for thumbnail effectiveness. Use for \"checklist before I publish this\n    thumbnail\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"thumbnail_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/evaluate_title_thumbnail_pair":{"post":{"operationId":"evaluate_title_thumbnail_pair","summary":"Computes word overlap between a title and a plain-language thumbnail description (flagging redundancy vs.","description":"Computes word overlap between a title and a plain-language thumbnail description (flagging redundancy vs.\n    healthy complementarity), plus a title-length note and a visual-clutter note. Use for \"does my title and\n    thumbnail overlap too much\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"description":"The video/post title.","examples":["7 Kitchen Tools That Are Actually Worth the Money"],"minLength":1,"title":"Title","type":"string"},"thumbnail_description":{"description":"A plain-language description of what's in the thumbnail.","examples":["a chef holding a knife with a surprised expression"],"minLength":1,"title":"Thumbnail Description","type":"string"}},"required":["title","thumbnail_description"],"title":"evaluate_title_thumbnail_pairArguments","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/clickbait_vs_curiosity_check":{"post":{"operationId":"clickbait_vs_curiosity_check","summary":"Analyzes a title's text for manipulative-clickbait markers (excessive capitalization, exclamation-mark","description":"Analyzes a title's text for manipulative-clickbait markers (excessive capitalization, exclamation-mark\n    stacking, vague hype phrasing) versus genuine specificity signals, with a craft-oriented verdict. Use for\n    \"is this title clickbait or genuine curiosity\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"description":"A title to analyze.","examples":["This ONE Trick Will SHOCK You!!!"],"minLength":1,"title":"Title","type":"string"}},"required":["title"],"title":"clickbait_vs_curiosity_checkArguments","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/recommend_approach":{"post":{"operationId":"recommend_approach","summary":"Suggests fitting title patterns and thumbnail principles for a stated content type. Use for \"what title","description":"Suggests fitting title patterns and thumbnail principles for a stated content type. Use for \"what title\n    pattern fits a product review\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"content_type":{"description":"A content type, in plain language.","examples":["a product review","a listicle","a transformation video"],"minLength":1,"title":"Content Type","type":"string"}},"required":["content_type"],"title":"recommend_approachArguments","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/ctr_glossary":{"post":{"operationId":"ctr_glossary","summary":"Definitions of core CTR/thumbnail terms: CTR, impression, the watch-time/session-duration link, A/B","description":"Definitions of core CTR/thumbnail terms: CTR, impression, the watch-time/session-duration link, A/B\n    testing, curiosity gap, clickbait, thumbnail, title tag. Use for \"what does CTR mean\", \"what's the\n    difference between a curiosity gap and clickbait\".","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":"ctr_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}}}}