Abnormal AI · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Abnormal Security Client API
7 actions
7 updates
documentation
extends
openapi/abnormal-client-api-openapi-original.yml
Derived by API Evangelist
Built from the contracts Abnormal AI publishes. Abnormal AI did not publish this file.
What the actions change
x-apievangelist-provenancex-apievangelist-artifactstermsOfServicex-apievangelist-supportx-apievangelist-conventionsdescriptionx-token-issuancex-token-rotation
Targets 5
$.info
$.servers
$.components.securitySchemes.BearerAuth
$.paths['/threats'].get
$
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Abnormal Security Client API
version: 1.0.0
extends: openapi/abnormal-client-api-openapi-original.yml
x-generated: '2026-08-02'
x-method: generated
x-source: >-
Enhancements derived from the harvested spec plus the artifacts in this repo. Applied as an
OpenAPI Overlay 1.0.0 document so the verbatim spec harvested from SwaggerHub is never
mutated.
actions:
- target: $.info
description: Record provenance and the API Evangelist artifact set for this API.
update:
x-apievangelist-provenance:
harvested_from: https://api.swaggerhub.com/apis/abnormal-security/abx/1.4.3
harvested: '2026-08-02'
registry: SwaggerHub
publisher: abnormal-security
x-apievangelist-artifacts:
authentication: authentication/abnormal-authentication.yml
conventions: conventions/abnormal-conventions.yml
errors: errors/abnormal-problem-types.yml
lifecycle: lifecycle/abnormal-lifecycle.yml
sandbox: sandbox/abnormal-sandbox.yml
data_model: data-model/abnormal-data-model.yml
conformance: conformance/abnormal-conformance.yml
webhooks: asyncapi/abnormal-webhooks.yml
skills: skills/_index.yml
security: security/abnormal-vulnerability-disclosure.yml
trust_center: security/abnormal-trust-center.yml
- target: $.info
description: >-
Add the machine-readable contact and terms links the spec omits, sourced from Abnormal's
published legal and support pages.
update:
termsOfService: https://abnormal.ai/legal/terms-of-use
x-apievangelist-support:
knowledge_base: https://abnormalsecurity.my.site.com/knowledgebase/s/
contact_form: https://abnormal.ai/contact
status_page: https://status.abnormalsecurity.com/
- target: $.info
description: Record the cross-cutting runtime semantics agents need but the spec does not state.
update:
x-apievangelist-conventions:
pagination:
style: page-number
request: [pageSize, pageNumber]
response: [pageNumber, nextPageNumber]
loop_rule: follow nextPageNumber until absent or null
idempotency:
supported: false
note: no Idempotency-Key contract; reconcile via the action-status operations before retrying a write
rate_limiting:
signal: HTTP 429
headers_published: false
model: concurrency per resource type per token
error_envelope:
media_type: application/json
shape: '{"error": "<message>"}'
rfc9457: false
test_mode:
header: 'Mock-Data: True'
async:
pattern: 202-accepted-then-poll
poll_with: v1_search_activities_status_retrieve
- target: $.servers
description: Label the two production regions so a client can bind the correct host per tenant.
update:
- url: https://api.abnormalplatform.com/v1
description: Production Server for managing threats
x-region: US
x-default: true
- url: https://eu.rest.abnormalsecurity.com/v1
description: EU Production Server for managing threats.
x-region: EU
- target: $.components.securitySchemes.BearerAuth
description: >-
Document how the bearer token is obtained and the second control (IP allowlisting) that
gates it, which the bare http/bearer scheme cannot express.
update:
description: >-
Long-lived organization API token issued in the Abnormal Portal under
Settings > Integrations > Abnormal REST API. Sent as `Authorization: Bearer <token>`.
Requests are additionally rejected with 403 when the source IP is not in the
organization's Portal-configured allowlist.
x-token-issuance: https://portal.abnormalsecurity.com/home/settings/integrations
x-token-rotation: manual, in the Portal
x-scopes: none
x-additional-control: source-ip allowlist (IPv4/IPv6 addresses or CIDR blocks)
- target: $.paths['/threats'].get
description: Make the paging contract explicit on the highest-traffic collection.
update:
x-apievangelist-pagination:
note: >-
pageNumber and nextPageNumber are only present in the response when a filter query
parameter is supplied. Without a filter the response is unpaged.
- target: $
description: Declare the webhook event surface, which is documented only outside the spec.
update:
x-apievangelist-webhooks:
published: true
announced: '2026-04-23'
source: https://abnormal.ai/products/whats-new/stream-abnormal-event-data-in-near-real-time-with-webhooks
asyncapi: false
events: [Threats, Vendor Cases, AI Security Mailbox, Audit Logs, Account Takeover,
Security Posture Management, URL Rewriting Clicked]
auth_methods: [API Key, Basic Authentication, Bearer Token, Custom Header]
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/abnormal-client-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.