{"openapi":"3.1.0","info":{"title":"Merge ATS (BYOK) API","version":"0.1.0","description":"Merge ATS (BYOK) lets an AI assistant read your own Merge ATS data through the Merge ATS API with a key you supply (Merge production access key). Read-only: 12 tools (get_account_details, list_jobs, get_job, list_job_postings, list_candidates, list_applications, list_interviews, list_interview_stages, list_offices, list_departments, list_reject_reasons, list_users). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-merge-ats.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-merge-ats/docs"},"termsOfService":"https://connectorbay.com/byok-merge-ats/terms"},"servers":[{"url":"https://byok-merge-ats.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-merge-ats/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/get_account_details":{"post":{"operationId":"get_account_details","summary":"Show the linked ATS account this token reads: integration name, category, status and when linking completed. Use for \"Wh","description":"Show the linked ATS account this token reads: integration name, category, status and when linking completed. Use for \"Which applicant tracking system is linked to this Merge account token\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"}},"required":["region"],"title":"get_account_detailsArguments","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_jobs":{"post":{"operationId":"list_jobs","summary":"List jobs with name, code, status, type, confidential flag, departments, offices, hiring managers and recruiters (ids). ","description":"List jobs with name, code, status, type, confidential flag, departments, offices, hiring managers and recruiters (ids). Job descriptions are not returned. Use for \"Which jobs are open in our applicant tracking system\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"status":{"anyOf":[{"enum":["ARCHIVED","CLOSED","DRAFT","OPEN","PENDING"],"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs with this status.","title":"Status"},"offices":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs of these Merge office ids, comma separated.","title":"Offices"},"code":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only the job with this code.","title":"Code"}},"required":["region"],"title":"list_jobsArguments","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_job":{"post":{"operationId":"get_job","summary":"Get one job by Merge id with name, code, status, departments, offices, hiring managers and recruiters. Use for \"Show Mer","description":"Get one job by Merge id with name, code, status, departments, offices, hiring managers and recruiters. Use for \"Show Merge job j1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"id":{"description":"Merge job id from list_jobs.","maxLength":64,"title":"Id","type":"string"}},"required":["region","id"],"title":"get_jobArguments","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_job_postings":{"post":{"operationId":"list_job_postings","summary":"List public and internal job postings with title, status, linked job, internal flag and dates. Posting text is not retur","description":"List public and internal job postings with title, status, linked job, internal flag and dates. Posting text is not returned. Use for \"Which job postings are published\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"status":{"anyOf":[{"enum":["CLOSED","DRAFT","INTERNAL","PENDING","PUBLISHED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only postings with this status.","title":"Status"}},"required":["region"],"title":"list_job_postingsArguments","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_candidates":{"post":{"operationId":"list_candidates","summary":"List candidates with name, current company and title, locations, tags, application ids, privacy flag and last interactio","description":"List candidates with name, current company and title, locations, tags, application ids, privacy flag and last interaction. Email addresses, phone numbers and links are not returned. Use for \"Which candidates did we talk to recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"first_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only candidates with this first name.","title":"First Name"},"last_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only candidates with this last name.","title":"Last Name"},"tags":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only candidates with these tags, comma separated.","title":"Tags"}},"required":["region"],"title":"list_candidatesArguments","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_applications":{"post":{"operationId":"list_applications","summary":"List applications with candidate, job, applied and rejected time, source, current stage and reject reason (ids). Screeni","description":"List applications with candidate, job, applied and rejected time, source, current stage and reject reason (ids). Screening answers are not returned. Use for \"Which applications came in for job j1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"job_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications for this Merge job id.","title":"Job Id"},"candidate_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications of this Merge candidate id.","title":"Candidate Id"},"current_stage_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications at this interview stage id.","title":"Current Stage Id"},"source":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications from this source.","title":"Source"},"reject_reason_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications rejected for this reason id.","title":"Reject Reason Id"}},"required":["region"],"title":"list_applicationsArguments","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_interviews":{"post":{"operationId":"list_interviews","summary":"List scheduled and past interviews with application, stage, organizer, interviewers, location, status and times. Use for","description":"List scheduled and past interviews with application, stage, organizer, interviewers, location, status and times. Use for \"What interviews are scheduled for application a1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"application_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only interviews of this Merge application id.","title":"Application Id"},"job_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only interviews for this Merge job id.","title":"Job Id"},"job_interview_stage_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only interviews at this stage id.","title":"Job Interview Stage Id"},"organizer_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only interviews organized by this user id.","title":"Organizer Id"}},"required":["region"],"title":"list_interviewsArguments","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_interview_stages":{"post":{"operationId":"list_interview_stages","summary":"List the pipeline stages (name and order), for all jobs or one job. Use for \"What stages does the hiring pipeline for jo","description":"List the pipeline stages (name and order), for all jobs or one job. Use for \"What stages does the hiring pipeline for job j1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"job_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only stages of this Merge job id.","title":"Job Id"}},"required":["region"],"title":"list_interview_stagesArguments","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_offices":{"post":{"operationId":"list_offices","summary":"List offices of the company with name and location. Use for \"Which offices do we hire for\".","description":"List offices of the company with name and location. Use for \"Which offices do we hire for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"}},"required":["region"],"title":"list_officesArguments","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_departments":{"post":{"operationId":"list_departments","summary":"List departments used for hiring with their names. Use for \"Which departments are we hiring for\".","description":"List departments used for hiring with their names. Use for \"Which departments are we hiring for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"}},"required":["region"],"title":"list_departmentsArguments","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_reject_reasons":{"post":{"operationId":"list_reject_reasons","summary":"List the reasons a candidate can be rejected, by name. Use for \"What rejection reasons are configured\".","description":"List the reasons a candidate can be rejected, by name. Use for \"What rejection reasons are configured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"}},"required":["region"],"title":"list_reject_reasonsArguments","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 recruiting team's users with name, email, role and disabled flag. Use for \"Who are the recruiters and hiring ma","description":"List the recruiting team's users with name, email, role and disabled flag. Use for \"Who are the recruiters and hiring managers in the ATS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Merge data region host prefix: 'api' (US, default), 'api-eu' (EU) or 'api-ap' (Asia-Pacific), matching where your Merge account is hosted.","enum":["api","api-eu","api-ap"],"title":"Region","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor: the 'next' value of the previous answer.","title":"Cursor"},"modified_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records synced by Merge after this ISO 8601 time.","title":"Modified After"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the user with this email address.","title":"Email"}},"required":["region"],"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}}}}