{"openapi":"3.1.0","info":{"title":"Teamgate (BYOK) API","version":"0.1.0","description":"Teamgate (BYOK) lets an AI assistant read your own Teamgate data through the Teamgate API with a key you supply (Teamgate user auth token). Read-only: 10 tools (list_deals, list_leads, get_lead, list_people, get_person, list_companies, get_company, get_pipeline, list_users, list_lead_statuses). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-teamgate.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-teamgate/docs"},"termsOfService":"https://connectorbay.com/byok-teamgate/terms"},"servers":[{"url":"https://byok-teamgate.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-teamgate/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_deals":{"post":{"operationId":"list_deals","summary":"List deals with value, currency, pipeline, stage, status, owner, buyer, source and estimated closure date. Filter by nam","description":"List deals with value, currency, pipeline, stage, status, owner, buyer, source and estimated closure date. Filter by name pattern, owner, status or stage; limit and offset paging. Use for \"Which Teamgate deals are active in the Sales pipeline\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_like":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Match deal names with a pattern; use % as wildcard, for example 'Post%' or '%tr P%'.","title":"Name Like"},"owner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only deals owned by this user id.","title":"Owner Id"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Deal status, for example active, won or lost.","title":"Status"},"stage_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only deals in this stage id.","title":"Stage Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (greater than 0).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip before the first result (0 or more).","title":"Offset"}},"title":"list_dealsArguments","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_leads":{"post":{"operationId":"list_leads","summary":"List leads with status, score, owner, source, industry, company, tags, emails and phones. Filter by name pattern, source","description":"List leads with status, score, owner, source, industry, company, tags, emails and phones. Filter by name pattern, source or industry; limit and offset paging. Use for \"What new leads came from web search in Teamgate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_like":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Match lead names with a pattern; use % as wildcard, for example 'Post%' or '%tr P%'.","title":"Name Like"},"source":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Exact source name, for example 'Web search'.","title":"Source"},"industry":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Exact industry name.","title":"Industry"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (greater than 0).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip before the first result (0 or more).","title":"Offset"}},"title":"list_leadsArguments","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_lead":{"post":{"operationId":"get_lead","summary":"Get one lead by id with status, score, owner, source, industry, company, tags, emails and phones. Use for \"Show Teamgate","description":"Get one lead by id with status, score, owner, source, industry, company, tags, emails and phones. Use for \"Show Teamgate lead 9659\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lead_id":{"description":"Numeric lead id from list_leads.","title":"Lead Id","type":"integer"}},"required":["lead_id"],"title":"get_leadArguments","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_people":{"post":{"operationId":"list_people","summary":"List people (contacts) with owner, source, industry, customer and prospect status, employer, tags, emails and phones. Fi","description":"List people (contacts) with owner, source, industry, customer and prospect status, employer, tags, emails and phones. Filter by name pattern; limit and offset paging. Use for \"Find people in Teamgate whose name starts with Jon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_like":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Match person names with a pattern; use % as wildcard, for example 'Post%' or '%tr P%'.","title":"Name Like"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (greater than 0).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip before the first result (0 or more).","title":"Offset"}},"title":"list_peopleArguments","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_person":{"post":{"operationId":"get_person","summary":"Get one person by id with owner, source, industry, statuses, employer, tags, emails and phones. Use for \"Show Teamgate p","description":"Get one person by id with owner, source, industry, statuses, employer, tags, emails and phones. Use for \"Show Teamgate person 9661\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"person_id":{"description":"Numeric person id from list_people.","title":"Person Id","type":"integer"}},"required":["person_id"],"title":"get_personArguments","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_companies":{"post":{"operationId":"list_companies","summary":"List companies with owner, source, industry, statuses, company and VAT codes, tags, emails, phones and URLs. Filter by n","description":"List companies with owner, source, industry, statuses, company and VAT codes, tags, emails, phones and URLs. Filter by name pattern; limit and offset paging. Use for \"Which companies in Teamgate have 'Software' in the name\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_like":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Match company names with a pattern; use % as wildcard, for example 'Post%' or '%tr P%'.","title":"Name Like"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (greater than 0).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip before the first result (0 or more).","title":"Offset"}},"title":"list_companiesArguments","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_company":{"post":{"operationId":"get_company","summary":"Get one company by id with owner, source, industry, statuses, company and VAT codes, tags, emails, phones and URLs. Use ","description":"Get one company by id with owner, source, industry, statuses, company and VAT codes, tags, emails, phones and URLs. Use for \"Show Teamgate company 7093\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"Numeric company id from list_companies.","title":"Company Id","type":"integer"}},"required":["company_id"],"title":"get_companyArguments","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_pipeline":{"post":{"operationId":"get_pipeline","summary":"Get one sales pipeline by id with its stages (id, name, win probability). Use for \"What stages does Teamgate pipeline 5 ","description":"Get one sales pipeline by id with its stages (id, name, win probability). Use for \"What stages does Teamgate pipeline 5 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_id":{"description":"Numeric pipeline id (see the pipeline.id field of list_deals).","title":"Pipeline Id","type":"integer"}},"required":["pipeline_id"],"title":"get_pipelineArguments","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_users":{"post":{"operationId":"list_users","summary":"List the users of the Teamgate account with name, username, role, active flag, language and time zone. Limit and offset ","description":"List the users of the Teamgate account with name, username, role, active flag, language and time zone. Limit and offset paging. Use for \"Who are the users in our Teamgate account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (greater than 0).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip before the first result (0 or more).","title":"Offset"}},"title":"list_usersArguments","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_lead_statuses":{"post":{"operationId":"list_lead_statuses","summary":"List the lead statuses configured in the account (id and name). Use for \"What lead statuses exist in Teamgate\".","description":"List the lead statuses configured in the account (id and name). Use for \"What lead statuses exist in Teamgate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_lead_statusesArguments","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}}}}