{"openapi":"3.1.0","info":{"title":"Front Templates and Views (BYOK) API","version":"0.1.0","description":"Front Templates and Views (BYOK) lets an AI assistant read your own Front Templates and Views data through the Front Templates and Views API with a key you supply (API token). Read-only: 9 tools (list_message_templates, get_message_template, get_template_folder, list_folder_subfolders, list_folder_templates, list_views, get_view, list_contact_lists, list_contact_groups). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-front-templates.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-front-templates/docs"},"termsOfService":"https://connectorbay.com/byok-front-templates/terms"},"servers":[{"url":"https://byok-front-templates.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-front-templates/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_message_templates":{"post":{"operationId":"list_message_templates","summary":"List message templates (canned replies) with name, subject and the inboxes they are available in. Template bodies are no","description":"List message templates (canned replies) with name, subject and the inboxes they are available in. Template bodies are not returned. Use for \"Which message templates exist in Front\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["created_at","updated_at","sort_order"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: created_at, updated_at or sort_order.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Direction: asc or desc.","title":"Sort Order"}},"title":"list_message_templatesArguments","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_message_template":{"post":{"operationId":"get_message_template","summary":"Get one message template by id with name, subject, body text and inbox availability. Use for \"What does Front message te","description":"Get one message template by id with name, subject, body text and inbox availability. Use for \"What does Front message template rsp_16yc say\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Id of the message template (for example 'rsp_16yc').","maxLength":40,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_message_templateArguments","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_template_folder":{"post":{"operationId":"get_template_folder","summary":"Get one message template folder by id: name and dates. Use for \"What is Front template folder rsf_g2\".","description":"Get one message template folder by id: name and dates. Use for \"What is Front template folder rsf_g2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder_id":{"description":"Id of the message template folder (for example 'rsf_g2').","maxLength":40,"title":"Folder Id","type":"string"}},"required":["folder_id"],"title":"get_template_folderArguments","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_folder_subfolders":{"post":{"operationId":"list_folder_subfolders","summary":"List the child folders of a message template folder. Use for \"Which subfolders does Front template folder rsf_g2 have\".","description":"List the child folders of a message template folder. Use for \"Which subfolders does Front template folder rsf_g2 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder_id":{"description":"Id of the message template folder (for example 'rsf_g2').","maxLength":40,"title":"Folder Id","type":"string"}},"required":["folder_id"],"title":"list_folder_subfoldersArguments","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_folder_templates":{"post":{"operationId":"list_folder_templates","summary":"List the templates inside a message template folder (the API returns id, name and dates for each). Use for \"Which templa","description":"List the templates inside a message template folder (the API returns id, name and dates for each). Use for \"Which templates are in Front template folder rsf_g2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder_id":{"description":"Id of the message template folder (for example 'rsf_g2').","maxLength":40,"title":"Folder Id","type":"string"}},"required":["folder_id"],"title":"list_folder_templatesArguments","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_views":{"post":{"operationId":"list_views","summary":"List the workspace's shared views with name, highlight color and the inbox, tag and assignee ids that define each view. ","description":"List the workspace's shared views with name, highlight color and the inbox, tag and assignee ids that define each view. Use for \"Which shared views are set up in Front\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the page_token in _pagination.next from the previous answer. Leave out for the first page.","title":"Page Token"}},"title":"list_viewsArguments","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_view":{"post":{"operationId":"get_view","summary":"Get one view by id with its inbox, tag and assignee filters. Use for \"How is Front view lns_abc123 defined\".","description":"Get one view by id with its inbox, tag and assignee filters. Use for \"How is Front view lns_abc123 defined\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"view_id":{"description":"Id of the view (for example 'lns_abc123').","maxLength":40,"title":"View Id","type":"string"}},"required":["view_id"],"title":"get_viewArguments","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_contact_lists":{"post":{"operationId":"list_contact_lists","summary":"List contact lists with name and whether each is private. Contacts themselves are not returned. Use for \"Which contact l","description":"List contact lists with name and whether each is private. Contacts themselves are not returned. Use for \"Which contact lists exist in Front\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_contact_listsArguments","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_contact_groups":{"post":{"operationId":"list_contact_groups","summary":"List contact groups with name and whether each is private. Contacts themselves are not returned. Use for \"Which contact ","description":"List contact groups with name and whether each is private. Contacts themselves are not returned. Use for \"Which contact groups exist in Front\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_contact_groupsArguments","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}}}}