{"openapi":"3.1.0","info":{"title":"Atlassian Admin (BYOK) API","version":"0.1.0","description":"Atlassian Admin (BYOK) lets an AI assistant read your own Atlassian Admin data through the Atlassian Admin API with a key you supply (Atlassian organization API key (an admin key, sent as a bearer token)). Read-only: 11 tools (list_organizations, get_organization, list_domains, list_directories, list_users, get_user_count, get_user_stats, list_groups, list_policies, list_audit_events,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-atlassian-admin.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-atlassian-admin/docs"},"termsOfService":"https://connectorbay.com/byok-atlassian-admin/terms"},"servers":[{"url":"https://byok-atlassian-admin.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-atlassian-admin/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_organizations":{"post":{"operationId":"list_organizations","summary":"List the Atlassian organizations the API key can administer, with their ids and names. Use for \"Which Atlassian organiza","description":"List the Atlassian organizations the API key can administer, with their ids and names. Use for \"Which Atlassian organizations does my admin key cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"title":"list_organizationsArguments","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_organization":{"post":{"operationId":"get_organization","summary":"Get one organization's name and id. Use for \"What is the name of my Atlassian organization\".","description":"Get one organization's name and id. Use for \"What is the name of my Atlassian organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"}},"required":["org_id"],"title":"get_organizationArguments","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_domains":{"post":{"operationId":"list_domains","summary":"List the domains claimed by an organization with their claim status. Use for \"Which domains has my Atlassian organizatio","description":"List the domains claimed by an organization with their claim status. Use for \"Which domains has my Atlassian organization claimed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"required":["org_id"],"title":"list_domainsArguments","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_directories":{"post":{"operationId":"list_directories","summary":"List the user directories of an organization, optionally filtered by search text or member. Use for \"Which directories d","description":"List the user directories of an organization, optionally filtered by search text or member. Use for \"Which directories does my Atlassian organization have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"search_term":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to match in the directory name.","title":"Search Term"},"account_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only directories where this Atlassian account id is a member.","title":"Account Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"required":["org_id"],"title":"list_directoriesArguments","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 managed user accounts of a directory with name, status, role flags and two-step verification. Filter by account","description":"List the managed user accounts of a directory with name, status, role flags and two-step verification. Filter by account status or search text. Use for \"Which Atlassian accounts in my organization are inactive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"directory_id":{"description":"Directory id, or '-' to span all directories of the organization (see list_directories).","maxLength":200,"title":"Directory Id","type":"string"},"account_status":{"anyOf":[{"enum":["active","inactive","closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Account lifecycle status to keep: active, inactive or closed.","title":"Account Status"},"mfa_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only accounts with two-step verification, false for those without.","title":"Mfa Enabled"},"search_term":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to match in nickname and email.","title":"Search Term"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"required":["org_id","directory_id"],"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/get_user_count":{"post":{"operationId":"get_user_count","summary":"Count the user accounts of a directory, optionally by account status. Use for \"How many active Atlassian accounts do we ","description":"Count the user accounts of a directory, optionally by account status. Use for \"How many active Atlassian accounts do we have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"directory_id":{"description":"Directory id, or '-' to span all directories of the organization (see list_directories).","maxLength":200,"title":"Directory Id","type":"string"},"account_status":{"anyOf":[{"enum":["active","inactive","closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Account lifecycle status to count: active, inactive or closed.","title":"Account Status"}},"required":["org_id","directory_id"],"title":"get_user_countArguments","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_user_stats":{"post":{"operationId":"get_user_stats","summary":"Get user totals by role and by account status for a directory. Use for \"How are our Atlassian users split by status and ","description":"Get user totals by role and by account status for a directory. Use for \"How are our Atlassian users split by status and role\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"directory_id":{"description":"Directory id, or '-' to span all directories of the organization (see list_directories).","maxLength":200,"title":"Directory Id","type":"string"}},"required":["org_id","directory_id"],"title":"get_user_statsArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List the groups of a directory with description, member and resource counts and whether they are synced from an external","description":"List the groups of a directory with description, member and resource counts and whether they are synced from an external directory. Use for \"Which groups exist in my Atlassian organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"directory_id":{"description":"Directory id, or '-' to span all directories of the organization (see list_directories).","maxLength":200,"title":"Directory Id","type":"string"},"search_term":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to match in the group name.","title":"Search Term"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"required":["org_id","directory_id"],"title":"list_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_policies":{"post":{"operationId":"list_policies","summary":"List the organization's security and data policies (IP allowlist, data residency, data security) with status. Use for \"W","description":"List the organization's security and data policies (IP allowlist, data residency, data security) with status. Use for \"Which security policies are enabled for my Atlassian organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"type":{"anyOf":[{"enum":["ip-allowlist","data-residency","data-security"],"type":"string"},{"type":"null"}],"default":null,"description":"Policy type to return: ip-allowlist, data-residency or data-security.","title":"Type"},"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"required":["org_id"],"title":"list_policiesArguments","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_audit_events":{"post":{"operationId":"list_audit_events","summary":"Query the organization's audit log: event time, action, actor and message. Filter by time window (epoch milliseconds), a","description":"Query the organization's audit log: event time, action, actor and message. Filter by time window (epoch milliseconds), action or search text. Use for \"What admin actions were logged in my Atlassian organization yesterday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Single search term for events.","title":"Q"},"date_from":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time as Unix epoch milliseconds.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Latest event time as Unix epoch milliseconds.","title":"Date To"},"action":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this action type (see list_event_actions).","title":"Action"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many events to return (1 to 500, default 30).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's links.next to get the next page.","title":"Cursor"}},"required":["org_id"],"title":"list_audit_eventsArguments","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_event_actions":{"post":{"operationId":"list_event_actions","summary":"List the audit event action types that can be used to filter list_audit_events. Use for \"Which audit event types does At","description":"List the audit event action types that can be used to filter list_audit_events. Use for \"Which audit event types does Atlassian record for my organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_id":{"description":"Your Atlassian organization id (from the Atlassian Administration URL), for example '4e1a2b3c-0000-4000-8000-000000000000'.","maxLength":200,"title":"Org Id","type":"string"}},"required":["org_id"],"title":"list_event_actionsArguments","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}}}}