{"openapi":"3.1.0","info":{"title":"Unified API (BYOK) API","version":"0.1.0","description":"Unified API (BYOK) lets an AI assistant read your own Unified API data through the Unified API API with a key you supply (Unified workspace API key (Settings, API Keys in the Unified dashboard)). Read-only: 6 tools (list_hris_employees, list_hris_groups, list_hris_locations, list_hris_companies, list_hris_time_off, list_ats_jobs). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-unified-to.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-unified-to/docs"},"termsOfService":"https://connectorbay.com/byok-unified-to/terms"},"servers":[{"url":"https://byok-unified-to.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-unified-to/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_hris_employees":{"post":{"operationId":"list_hris_employees","summary":"List employees of a connected HR system: name, work emails, title, manager, employment status and type, employee number,","description":"List employees of a connected HR system: name, work emails, title, manager, employment status and type, employee number, hire and termination dates. Pay, birth date, gender, ID numbers, address and phone are never requested. Use for \"Who works at the company according to our HR system\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Unified data center host prefix: 'api' (North America, default), 'api-eu' (Europe) or 'api-au' (Australia), matching where your workspace lives.","enum":["api","api-eu","api-au"],"title":"Region","type":"string"},"connection_id":{"description":"Unified connection id of the customer's connected HR or recruiting system (from your Unified dashboard).","maxLength":100,"title":"Connection Id","type":"string"},"fields":{"anyOf":[{"const":"id,created_at,updated_at,name,first_name,last_name,emails,title,job_id,manager_id,employment_status,employment_type,employee_number,hired_at,terminated_at,company_id","type":"string"},{"type":"null"}],"default":"id,created_at,updated_at,name,first_name,last_name,emails,title,job_id,manager_id,employment_status,employment_type,employee_number,hired_at,terminated_at,company_id","description":"Fixed list of safe fields requested from Unified (leave unchanged).","title":"Fields"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based record offset for paging; stop when fewer than limit records come back.","title":"Offset"},"updated_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated Gte"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search such as a name or email, where the provider supports it.","title":"Query"},"company_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only employees of this company id.","title":"Company Id"},"group_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only employees of this group id.","title":"Group Id"}},"required":["region","connection_id"],"title":"list_hris_employeesArguments","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_hris_groups":{"post":{"operationId":"list_hris_groups","summary":"List groups (departments, teams, divisions) of a connected HR system with type, parent, members and managers. Use for \"W","description":"List groups (departments, teams, divisions) of a connected HR system with type, parent, members and managers. Use for \"What departments and teams exist in our HR system\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Unified data center host prefix: 'api' (North America, default), 'api-eu' (Europe) or 'api-au' (Australia), matching where your workspace lives.","enum":["api","api-eu","api-au"],"title":"Region","type":"string"},"connection_id":{"description":"Unified connection id of the customer's connected HR or recruiting system (from your Unified dashboard).","maxLength":100,"title":"Connection Id","type":"string"},"fields":{"anyOf":[{"const":"id,created_at,updated_at,name,description,parent_id,type,user_ids,manager_ids,is_active,company_id","type":"string"},{"type":"null"}],"default":"id,created_at,updated_at,name,description,parent_id,type,user_ids,manager_ids,is_active,company_id","description":"Fixed list of safe fields requested from Unified (leave unchanged).","title":"Fields"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based record offset for paging; stop when fewer than limit records come back.","title":"Offset"},"updated_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated Gte"},"company_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups of this company id.","title":"Company Id"},"type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups of this type.","title":"Type"}},"required":["region","connection_id"],"title":"list_hris_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}},"/v1/tools/list_hris_locations":{"post":{"operationId":"list_hris_locations","summary":"List work locations of a connected HR system with address, time zone, HQ flag and parent. Use for \"Which offices are in ","description":"List work locations of a connected HR system with address, time zone, HQ flag and parent. Use for \"Which offices are in our HR system\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Unified data center host prefix: 'api' (North America, default), 'api-eu' (Europe) or 'api-au' (Australia), matching where your workspace lives.","enum":["api","api-eu","api-au"],"title":"Region","type":"string"},"connection_id":{"description":"Unified connection id of the customer's connected HR or recruiting system (from your Unified dashboard).","maxLength":100,"title":"Connection Id","type":"string"},"fields":{"anyOf":[{"const":"id,created_at,updated_at,name,description,address,parent_id,timezone,is_active,is_hq,company_id","type":"string"},{"type":"null"}],"default":"id,created_at,updated_at,name,description,address,parent_id,timezone,is_active,is_hq,company_id","description":"Fixed list of safe fields requested from Unified (leave unchanged).","title":"Fields"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based record offset for paging; stop when fewer than limit records come back.","title":"Offset"},"updated_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated Gte"},"company_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only locations of this company id.","title":"Company Id"}},"required":["region","connection_id"],"title":"list_hris_locationsArguments","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_hris_companies":{"post":{"operationId":"list_hris_companies","summary":"List companies and legal entities of a connected HR system with name and address. Use for \"Which legal entities are in o","description":"List companies and legal entities of a connected HR system with name and address. Use for \"Which legal entities are in our HR system\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Unified data center host prefix: 'api' (North America, default), 'api-eu' (Europe) or 'api-au' (Australia), matching where your workspace lives.","enum":["api","api-eu","api-au"],"title":"Region","type":"string"},"connection_id":{"description":"Unified connection id of the customer's connected HR or recruiting system (from your Unified dashboard).","maxLength":100,"title":"Connection Id","type":"string"},"fields":{"anyOf":[{"const":"id,created_at,updated_at,name,legal_name,address","type":"string"},{"type":"null"}],"default":"id,created_at,updated_at,name,legal_name,address","description":"Fixed list of safe fields requested from Unified (leave unchanged).","title":"Fields"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based record offset for paging; stop when fewer than limit records come back.","title":"Offset"},"updated_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated Gte"}},"required":["region","connection_id"],"title":"list_hris_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/list_hris_time_off":{"post":{"operationId":"list_hris_time_off","summary":"List time off requests of a connected HR system: who, when, type, status, approver, duration. The free-text reason and c","description":"List time off requests of a connected HR system: who, when, type, status, approver, duration. The free-text reason and comments are not requested. Use for \"Who is on leave next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Unified data center host prefix: 'api' (North America, default), 'api-eu' (Europe) or 'api-au' (Australia), matching where your workspace lives.","enum":["api","api-eu","api-au"],"title":"Region","type":"string"},"connection_id":{"description":"Unified connection id of the customer's connected HR or recruiting system (from your Unified dashboard).","maxLength":100,"title":"Connection Id","type":"string"},"fields":{"anyOf":[{"const":"id,created_at,updated_at,user_id,company_id,start_at,end_at,is_paid,status,approver_user_id,type,duration,duration_type","type":"string"},{"type":"null"}],"default":"id,created_at,updated_at,user_id,company_id,start_at,end_at,is_paid,status,approver_user_id,type,duration,duration_type","description":"Fixed list of safe fields requested from Unified (leave unchanged).","title":"Fields"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based record offset for paging; stop when fewer than limit records come back.","title":"Offset"},"updated_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated Gte"},"user_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only time off of this employee id.","title":"User Id"},"company_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only time off of this company id.","title":"Company Id"}},"required":["region","connection_id"],"title":"list_hris_time_offArguments","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_ats_jobs":{"post":{"operationId":"list_ats_jobs","summary":"List jobs of a connected recruiting system: name, status, employment type, remote flag, openings, recruiters and hiring ","description":"List jobs of a connected recruiting system: name, status, employment type, remote flag, openings, recruiters and hiring managers. Salary and compensation are not requested. Use for \"Which jobs are open in our ATS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Unified data center host prefix: 'api' (North America, default), 'api-eu' (Europe) or 'api-au' (Australia), matching where your workspace lives.","enum":["api","api-eu","api-au"],"title":"Region","type":"string"},"connection_id":{"description":"Unified connection id of the customer's connected HR or recruiting system (from your Unified dashboard).","maxLength":100,"title":"Connection Id","type":"string"},"fields":{"anyOf":[{"const":"id,created_at,updated_at,name,status,closed_at,employment_type,remote,public_job_urls,number_of_openings,company_id,user_id,recruiter_ids,hiring_manager_ids","type":"string"},{"type":"null"}],"default":"id,created_at,updated_at,name,status,closed_at,employment_type,remote,public_job_urls,number_of_openings,company_id,user_id,recruiter_ids,hiring_manager_ids","description":"Fixed list of safe fields requested from Unified (leave unchanged).","title":"Fields"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based record offset for paging; stop when fewer than limit records come back.","title":"Offset"},"updated_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated Gte"},"company_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs of this company id.","title":"Company Id"},"status":{"anyOf":[{"enum":["ACTIVE","PENDING","CLOSED","DRAFT","ARCHIVED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs with this status.","title":"Status"}},"required":["region","connection_id"],"title":"list_ats_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}}}}