Skip to content

Authentication

Adversarial separates human authentication (interactive SSO with a Google or Microsoft account) 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 with your Google or Microsoft account. Invited users land in the organization that invited them; signing in without an invitation takes you through a short onboarding flow where you create your organization — see Getting Started for a walkthrough of both paths. 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.