{"openapi":"3.1.0","info":{"title":"Biolinecraft API","version":"0.1.0","description":"A fully local professional bio/summary template generator: builds a LinkedIn About, speaker bio, one-liner, executive bio, academic bio, or personal-website About page from your own facts, transforms a bio between first and third person, scans for bio buzzwords, and provides hand-curated bio-type, tone, checklist, and example reference.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://biolinecraft.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/biolinecraft/docs"},"termsOfService":"https://connectorbay.com/biolinecraft/terms"},"servers":[{"url":"https://biolinecraft.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/biolinecraft/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/build_bio":{"post":{"operationId":"build_bio","summary":"Assembles a bio of the given type from the facts you provide, in that type's typical structure and voice,","description":"Assembles a bio of the given type from the facts you provide, in that type's typical structure and voice,\n    with a word-count check. Invents no achievements or credentials. Use for \"write me a LinkedIn About section\",\n    \"draft an executive bio for me\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bio_type":{"description":"linkedin_about | speaker_bio | one_liner | executive_bio | academic_bio | press_bio | website_about","title":"Bio Type","type":"string"},"name":{"description":"The person's name.","minLength":1,"title":"Name","type":"string"},"role":{"description":"Current role, e.g. 'a product manager focused on developer tools'.","minLength":1,"title":"Role","type":"string"},"focus_areas":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"What they focus on or specialize in.","title":"Focus Areas"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Concrete achievements, e.g. 'led a 12-person team through a platform migration'.","title":"Achievements"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"What they value or care about professionally.","title":"Values"},"tone":{"default":"professional","description":"professional | conversational | confident | academic_precise | playful","title":"Tone","type":"string"}},"required":["bio_type","name","role"],"title":"build_bioArguments","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/speaker_bio_builder":{"post":{"operationId":"speaker_bio_builder","summary":"Assembles a third-person conference-introduction bio — always third person, since it's usually read aloud","description":"Assembles a third-person conference-introduction bio — always third person, since it's usually read aloud\n    by someone introducing the speaker. Use for \"write me a speaker bio for this conference\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"minLength":1,"title":"Name","type":"string"},"title":{"description":"Current title, e.g. 'Senior Data Engineer'.","minLength":1,"title":"Title","type":"string"},"org":{"description":"Organization or company.","minLength":1,"title":"Org","type":"string"},"credibility_points":{"description":"Achievements/projects that make them qualified to speak, phrased as a verb phrase, e.g. 'led the redesign of the checkout flow'.","items":{"type":"string"},"minItems":1,"title":"Credibility Points","type":"array"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What they'll speak about at this event.","title":"Topic"},"personal_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"One humanizing detail, e.g. 'restores vintage bicycles'.","title":"Personal Detail"}},"required":["name","title","org","credibility_points"],"title":"speaker_bio_builderArguments","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/one_liner_bio_generator":{"post":{"operationId":"one_liner_bio_generator","summary":"Produces a few short one-line bio variants with character counts, for a Twitter/X bio, Slack status, or","description":"Produces a few short one-line bio variants with character counts, for a Twitter/X bio, Slack status, or\n    name badge. Use for \"give me a one-line bio for my Twitter profile\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"role":{"minLength":1,"title":"Role","type":"string"},"focus":{"description":"What they focus on or are known for.","minLength":1,"title":"Focus","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Name, for a byline-style variant.","title":"Name"},"differentiator":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"An optional differentiator or personal interest.","title":"Differentiator"}},"required":["role","focus"],"title":"one_liner_bio_generatorArguments","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/academic_bio_builder":{"post":{"operationId":"academic_bio_builder","summary":"Assembles a third-person academic bio from a degree, institution, research area, and notable items. Use","description":"Assembles a third-person academic bio from a degree, institution, research area, and notable items. Use\n    for \"write me an academic bio for a conference program\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"minLength":1,"title":"Name","type":"string"},"degree":{"description":"e.g. 'a Ph.D. in Civil and Environmental Engineering'.","minLength":1,"title":"Degree","type":"string"},"institution":{"minLength":1,"title":"Institution","type":"string"},"research_area":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Current research focus.","title":"Research Area"},"notable_items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Publications, grants, or awards, phrased as a verb phrase.","title":"Notable Items"}},"required":["name","degree","institution"],"title":"academic_bio_builderArguments","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/person_voice_transform":{"post":{"operationId":"person_voice_transform","summary":"Converts a drafted bio between first and third person via pronoun and verb-conjugation substitution — a","description":"Converts a drafted bio between first and third person via pronoun and verb-conjugation substitution — a\n    bio written for yourself in first person often needs to become third person for a printed program, and vice\n    versa. Best-effort heuristic; always proofread the result. Use for \"turn my bio into third person\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The bio text to transform.","minLength":1,"title":"Text","type":"string"},"name":{"description":"The person's name, used as the third-person subject.","minLength":1,"title":"Name","type":"string"},"target_voice":{"description":"first | third","title":"Target Voice","type":"string"}},"required":["text","name","target_voice"],"title":"person_voice_transformArguments","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/bio_buzzword_scanner":{"post":{"operationId":"bio_buzzword_scanner","summary":"Flags tired bio phrases (\"passionate about\", \"thought leader\", \"results-driven\", and more) with why each","description":"Flags tired bio phrases (\"passionate about\", \"thought leader\", \"results-driven\", and more) with why each\n    is weak and a more specific alternative. Use for \"check my bio for clichés\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The drafted bio text to scan.","minLength":1,"title":"Text","type":"string"}},"required":["text"],"title":"bio_buzzword_scannerArguments","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/bio_length_guide":{"post":{"operationId":"bio_length_guide","summary":"The typical word range, typical voice, and structure for one bio type, or all seven. Use for \"how long","description":"The typical word range, typical voice, and structure for one bio type, or all seven. Use for \"how long\n    should a LinkedIn About section be\", \"what should an executive bio include\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bio_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"linkedin_about | speaker_bio | one_liner | executive_bio | academic_bio | press_bio | website_about; omit to list all seven.","title":"Bio Type"}},"title":"bio_length_guideArguments","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/bio_tone_guide":{"post":{"operationId":"bio_tone_guide","summary":"Explains one tone option, or all five, with sample connective phrases and when each fits. Use for \"what","description":"Explains one tone option, or all five, with sample connective phrases and when each fits. Use for \"what\n    tone should my bio be\", \"give me a more confident bio tone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"professional | conversational | confident | academic_precise | playful; omit to list all five.","title":"Tone"}},"title":"bio_tone_guideArguments","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/bio_checklist":{"post":{"operationId":"bio_checklist","summary":"A general pre-publish bio checklist — opening line, specificity over adjectives, voice matching the","description":"A general pre-publish bio checklist — opening line, specificity over adjectives, voice matching the\n    format, length, and a final proofread pass. Use for \"what should I check before publishing my bio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"bio_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/bio_examples":{"post":{"operationId":"bio_examples","summary":"A generic example bio for one type, or one example of each of the seven types — fictional names, for","description":"A generic example bio for one type, or one example of each of the seven types — fictional names, for\n    structure reference only. Use for \"show me an example speaker bio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bio_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"linkedin_about | speaker_bio | one_liner | executive_bio | academic_bio | press_bio | website_about; omit for one example of each.","title":"Bio Type"}},"title":"bio_examplesArguments","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}}}}