{"openapi":"3.1.0","info":{"title":"Freshsales (BYOK) API","version":"0.1.0","description":"Freshsales (BYOK) lets an AI assistant read your own Freshsales data through the Freshsales API with a key you supply (Freshworks CRM API key). Read-only: 8 tools (list_contact_views, list_contacts_in_view, list_account_views, list_accounts_in_view, list_deal_views, list_deals_in_view, list_open_tasks, list_owners). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-freshsales.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-freshsales/docs"},"termsOfService":"https://connectorbay.com/byok-freshsales/terms"},"servers":[{"url":"https://byok-freshsales.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-freshsales/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_contact_views":{"post":{"operationId":"list_contact_views","summary":"List the saved contact views (filters) of Freshsales; use a view id with list_contacts_in_view. Use for \"What contact vi","description":"List the saved contact views (filters) of Freshsales; use a view id with list_contacts_in_view. Use for \"What contact views exist in Freshsales\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"}},"required":["domain"],"title":"list_contact_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/list_contacts_in_view":{"post":{"operationId":"list_contacts_in_view","summary":"List the contacts of one saved Freshsales view (25 per page) with job title, email, phones, city, lead score and open de","description":"List the contacts of one saved Freshsales view (25 per page) with job title, email, phones, city, lead score and open deal amount. Use for \"Show the contacts in Freshsales view 4\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"},"view_id":{"description":"Id of a saved contact view, taken from the matching list_*_views tool.","title":"View Id","type":"integer"},"sort":{"anyOf":[{"enum":["lead_score","created_at","updated_at","open_deals_amount","last_contacted"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: lead_score, created_at, updated_at, open_deals_amount or last_contacted.","title":"Sort"},"sort_type":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc (used with sort).","title":"Sort Type"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1 (25 records per page).","title":"Page"}},"required":["domain","view_id"],"title":"list_contacts_in_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_account_views":{"post":{"operationId":"list_account_views","summary":"List the saved account (company) views of Freshsales; use a view id with list_accounts_in_view. Use for \"What account vi","description":"List the saved account (company) views of Freshsales; use a view id with list_accounts_in_view. Use for \"What account views exist in Freshsales\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"}},"required":["domain"],"title":"list_account_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/list_accounts_in_view":{"post":{"operationId":"list_accounts_in_view","summary":"List the accounts (companies) of one saved Freshsales view (25 per page) with location and open deal amount. Use for \"Sh","description":"List the accounts (companies) of one saved Freshsales view (25 per page) with location and open deal amount. Use for \"Show the accounts in Freshsales view 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"},"view_id":{"description":"Id of a saved account view, taken from the matching list_*_views tool.","title":"View Id","type":"integer"},"sort":{"anyOf":[{"enum":["open_deals_amount","created_at","updated_at","last_contacted"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: open_deals_amount, created_at, updated_at or last_contacted.","title":"Sort"},"sort_type":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc (used with sort).","title":"Sort Type"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1 (25 records per page).","title":"Page"}},"required":["domain","view_id"],"title":"list_accounts_in_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_deal_views":{"post":{"operationId":"list_deal_views","summary":"List the saved deal views of Freshsales (for example Open Deals, My Deals); use a view id with list_deals_in_view. Use f","description":"List the saved deal views of Freshsales (for example Open Deals, My Deals); use a view id with list_deals_in_view. Use for \"What deal views exist in Freshsales\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"}},"required":["domain"],"title":"list_deal_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/list_deals_in_view":{"post":{"operationId":"list_deals_in_view","summary":"List the deals of one saved Freshsales view (25 per page) with amount, probability, expected close date and dates. Use f","description":"List the deals of one saved Freshsales view (25 per page) with amount, probability, expected close date and dates. Use for \"Show the open deals in Freshsales view 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"},"view_id":{"description":"Id of a saved deal view, taken from the matching list_*_views tool.","title":"View Id","type":"integer"},"sort":{"anyOf":[{"enum":["amount","expected_close","created_at","updated_at","last_contacted"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: amount, expected_close, created_at, updated_at or last_contacted.","title":"Sort"},"sort_type":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc (used with sort).","title":"Sort Type"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1 (25 records per page).","title":"Page"}},"required":["domain","view_id"],"title":"list_deals_in_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_open_tasks":{"post":{"operationId":"list_open_tasks","summary":"List the open Freshsales tasks with title, description, due date and owner id. Use for \"Which Freshsales tasks are open\"","description":"List the open Freshsales tasks with title, description, due date and owner id. Use for \"Which Freshsales tasks are open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"},"filter":{"const":"open","description":"Task filter. The documentation example uses 'open' (the filter is mandatory and only one is allowed).","title":"Filter","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1 (25 records per page).","title":"Page"}},"required":["domain","filter"],"title":"list_open_tasksArguments","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_owners":{"post":{"operationId":"list_owners","summary":"List the users (owners) of the Freshsales account with their ids and names. Use the ids to read owner columns. Use for \"","description":"List the users (owners) of the Freshsales account with their ids and names. Use the ids to read owner columns. Use for \"Who are the users in my Freshsales account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Your Freshworks CRM bundle alias, the first part of your address (for example 'acme' for acme.myfreshworks.com).","maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Domain","type":"string"}},"required":["domain"],"title":"list_ownersArguments","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}}}}