{"openapi":"3.1.0","info":{"title":"Happy Scribe (BYOK) API","version":"0.1.0","description":"Happy Scribe (BYOK) lets an AI assistant read your own Happy Scribe data through the Happy Scribe API with a key you supply (API key). Read-only: 10 tools (list_organizations, list_transcriptions, get_transcription, get_transcription_summary, get_meeting, get_export, get_translation_task, get_order, list_glossaries, list_style_guides). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-happyscribe.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-happyscribe/docs"},"termsOfService":"https://connectorbay.com/byok-happyscribe/terms"},"servers":[{"url":"https://byok-happyscribe.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-happyscribe/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_organizations":{"post":{"operationId":"list_organizations","summary":"List the Happy Scribe organizations (workspaces) your key belongs to, with ID, name, role and billing currency. Use for ","description":"List the Happy Scribe organizations (workspaces) your key belongs to, with ID, name, role and billing currency. Use for \"Which Happy Scribe organizations do I belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_organizationsArguments","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_transcriptions":{"post":{"operationId":"list_transcriptions","summary":"List transcriptions in a Happy Scribe organization, newest first, with name, state, language, length, cost and tags. Use","description":"List transcriptions in a Happy Scribe organization, newest first, with name, state, language, length, cost and tags. Use for \"Which Happy Scribe transcriptions are in organization 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"anyOf":[{"maximum":2000000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Happy Scribe organization ID (from list_organizations), for example 123.","title":"Organization Id"},"folder_id":{"anyOf":[{"maximum":2000000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only transcriptions in this folder or its subfolders.","title":"Folder Id"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"Transcriptions per page, 1 to 100.","title":"Per Page"}},"title":"list_transcriptionsArguments","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/get_transcription":{"post":{"operationId":"get_transcription","summary":"Get one Happy Scribe transcription: state, language, length, cost, folder, tags and sharing flag. Use for \"What is the s","description":"Get one Happy Scribe transcription: state, language, length, cost, folder, tags and sharing flag. Use for \"What is the state of Happy Scribe transcription 9josdjdfo09j309omsldknslkjndfjknsdfs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"transcription_id":{"description":"Transcription ID as returned by list_transcriptions (id).","maxLength":80,"title":"Transcription Id","type":"string"}},"required":["transcription_id"],"title":"get_transcriptionArguments","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/get_transcription_summary":{"post":{"operationId":"get_transcription_summary","summary":"Get the AI-generated summary of a Happy Scribe notetaker recording; answers 404 when none exists yet. Use for \"Summarize","description":"Get the AI-generated summary of a Happy Scribe notetaker recording; answers 404 when none exists yet. Use for \"Summarize Happy Scribe transcription 9josdjdfo09j309omsldknslkjndfjknsdfs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"transcription_id":{"description":"Transcription ID as returned by list_transcriptions (id).","maxLength":80,"title":"Transcription Id","type":"string"}},"required":["transcription_id"],"title":"get_transcription_summaryArguments","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/get_meeting":{"post":{"operationId":"get_meeting","summary":"Get one Happy Scribe notetaker meeting: status, language, join time, linked transcription and plain-text summary (transc","description":"Get one Happy Scribe notetaker meeting: status, language, join time, linked transcription and plain-text summary (transcript and meeting link left out). Use for \"What happened in Happy Scribe meeting mtg_01k0h4r9s8x7c2dvq3m5n6p4ab\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"meeting_id":{"description":"Meeting ID starting with mtg_, as returned when the meeting was created.","maxLength":80,"title":"Meeting Id","type":"string"}},"required":["meeting_id"],"title":"get_meetingArguments","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/get_export":{"post":{"operationId":"get_export","summary":"Get the status of a Happy Scribe export (pending, processing, ready, expired, failed), its format and download link. Use","description":"Get the status of a Happy Scribe export (pending, processing, ready, expired, failed), its format and download link. Use for \"Is Happy Scribe export abc123 ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"export_id":{"description":"Export ID returned when the export was created.","maxLength":80,"title":"Export Id","type":"string"}},"required":["export_id"],"title":"get_exportArguments","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/get_translation_task":{"post":{"operationId":"get_translation_task","summary":"Get the state of a Happy Scribe translation task (initial, working, failed, done) and the translated transcription ID. U","description":"Get the state of a Happy Scribe translation task (initial, working, failed, done) and the translated transcription ID. Use for \"Is Happy Scribe translation task 054fe9f3aa0b446baea730fba688f96c done\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"task_id":{"description":"Translation task ID.","maxLength":80,"title":"Task Id","type":"string"}},"required":["task_id"],"title":"get_translation_taskArguments","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/get_order":{"post":{"operationId":"get_order","summary":"Get one Happy Scribe order: state, folder, total price, currency and the transcription IDs it produces. Use for \"What is","description":"Get one Happy Scribe order: state, folder, total price, currency and the transcription IDs it produces. Use for \"What is the state of Happy Scribe order 10b1edd9381d4a00a3d0db1ca1b3d0cf\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"description":"Order ID returned when the order was created.","maxLength":80,"title":"Order Id","type":"string"}},"required":["order_id"],"title":"get_orderArguments","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_glossaries":{"post":{"operationId":"list_glossaries","summary":"List the glossaries of a Happy Scribe organization with name, languages and default flag. Use for \"What glossaries does ","description":"List the glossaries of a Happy Scribe organization with name, languages and default flag. Use for \"What glossaries does Happy Scribe organization 123 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"anyOf":[{"maximum":2000000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Happy Scribe organization ID (from list_organizations), for example 123.","title":"Organization Id"}},"title":"list_glossariesArguments","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_style_guides":{"post":{"operationId":"list_style_guides","summary":"List the style guides of a Happy Scribe organization with operation type and formatting options. Use for \"What style gui","description":"List the style guides of a Happy Scribe organization with operation type and formatting options. Use for \"What style guides does Happy Scribe organization 123 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"anyOf":[{"maximum":2000000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Happy Scribe organization ID (from list_organizations), for example 123.","title":"Organization Id"}},"title":"list_style_guidesArguments","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}}}}