{"openapi":"3.1.0","info":{"title":"OpenAI audit logs, admin keys and certificates (your key) API","version":"0.1.0","description":"OpenAI audit logs, admin keys and certificates (your key) lets an AI assistant read your own OpenAI Org Security data through the OpenAI Org Security API with a key you supply (OpenAI Admin API key). Read-only: 6 tools (list_audit_logs, list_admin_api_keys, get_admin_api_key, list_organization_certificates, get_organization_certificate, list_project_certificates). 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-openai-org-security.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-openai-org-security/docs"},"termsOfService":"https://connectorbay.com/byok-openai-org-security/terms"},"servers":[{"url":"https://byok-openai-org-security.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-openai-org-security/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_audit_logs":{"post":{"operationId":"list_audit_logs","summary":"List audit log events (configuration changes, key and project events, logins) newest first with event type, time and pro","description":"List audit log events (configuration changes, key and project events, logins) newest first with event type, time and project. Actor identities and event details are not returned. Needs an Admin API key (sk-admin-...), which only organization owners can create. Use for \"What OpenAI audit events happened in my organization since 1760000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"effective_after":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only events after this time (Unix seconds).","title":"Effective After"},"effective_before":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only events before this time (Unix seconds).","title":"Effective Before"},"event_type":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this type, for example api_key.created, project.updated or login.failed.","title":"Event Type"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this project id.","title":"Project Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many events to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the last_id of the previous page.","title":"After"},"before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging backwards: the first_id of the page after the wanted one.","title":"Before"}},"title":"list_audit_logsArguments","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_admin_api_keys":{"post":{"operationId":"list_admin_api_keys","summary":"List the organization's Admin API keys with name, redacted value, creation and last use time (Unix seconds) and owner ty","description":"List the organization's Admin API keys with name, redacted value, creation and last use time (Unix seconds) and owner type. Full key values are never returned. Needs an Admin API key (sk-admin-...), which only organization owners can create. Use for \"Which OpenAI admin API keys exist and when were they last used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many keys to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the last_id of the previous page.","title":"After"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order by creation time: asc (default) or desc.","title":"Order"}},"title":"list_admin_api_keysArguments","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_admin_api_key":{"post":{"operationId":"get_admin_api_key","summary":"Get one Admin API key by id: name, redacted value, creation and last use time and owner type. The full value is never re","description":"Get one Admin API key by id: name, redacted value, creation and last use time and owner type. The full value is never returned. Needs an Admin API key (sk-admin-...), which only organization owners can create. Use for \"When was OpenAI admin key key_abc123 last used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"key_id":{"description":"Admin API key id, for example 'key_abc123'.","maxLength":100,"title":"Key Id","type":"string"}},"required":["key_id"],"title":"get_admin_api_keyArguments","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_organization_certificates":{"post":{"operationId":"list_organization_certificates","summary":"List mTLS certificates uploaded to the organization with name, active flag and validity dates; certificate content is no","description":"List mTLS certificates uploaded to the organization with name, active flag and validity dates; certificate content is not returned. Needs an Admin API key (sk-admin-...), which only organization owners can create. Use for \"Which OpenAI organization certificates are active and when do they expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the last_id of the previous page.","title":"After"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort order by creation time: desc (default) or asc.","title":"Order"}},"title":"list_organization_certificatesArguments","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_certificate":{"post":{"operationId":"get_organization_certificate","summary":"Get one organization certificate by id: name, active flag and validity dates. The certificate content is not returned. N","description":"Get one organization certificate by id: name, active flag and validity dates. The certificate content is not returned. Needs an Admin API key (sk-admin-...), which only organization owners can create. Use for \"When does OpenAI certificate cert_abc123 expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"certificate_id":{"description":"Certificate id, for example 'cert_abc123'.","maxLength":100,"title":"Certificate Id","type":"string"}},"required":["certificate_id"],"title":"get_organization_certificateArguments","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_project_certificates":{"post":{"operationId":"list_project_certificates","summary":"List mTLS certificates attached to one project with name, active flag and validity dates; certificate content is not ret","description":"List mTLS certificates attached to one project with name, active flag and validity dates; certificate content is not returned. Needs an Admin API key (sk-admin-...), which only organization owners can create. Use for \"Which certificates does OpenAI project proj_abc123 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id, for example 'proj_abc123'.","maxLength":100,"title":"Project Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the last_id of the previous page.","title":"After"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort order by creation time: desc (default) or asc.","title":"Order"}},"required":["project_id"],"title":"list_project_certificatesArguments","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}}}}