Skip to content

Authentication

Adversarial separates human authentication (interactive SSO via your company IDP) from machine authentication (OAuth 2.1 client credentials issued to a service account). Both produce a principal in the same org — every action attributes back to a row at Settings > Team, whether it was taken by a human, a credential service account, or an integration.

Log in at app.adversarial.com using your company identity provider (IDP) credentials. Your tenant is created automatically on first login. After logging in, you can access all platform features based on your assigned roles.

For scripts, agents, dashboards, and any other non-browser caller, create a service account at Settings > Team and exchange its client_id / client_secret for a short-lived bearer token:

Terminal window
curl -s -X POST https://api.adversarial.com/api/v1/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=arm_sa_…" \
-d "client_secret=arm_sk_…"

Use the returned access_token as a bearer on subsequent API calls. The token is bounded by the SA’s roles, the IP allowlist you configured at create time, and an absolute expiry — see Service Accounts for the full walkthrough and API Access for the request-response shape and error reference.