Can an agent get its first credential without a browser?

Nineteen of the 88 services in the agent-account index document minting an API key or token by API or CLI. This page reads each one's own documentation for two things: how the first credential is obtained, and whether the key-minting call itself authenticates with a credential the caller already holds.

Read end to end — no credential, no browser, to a minted token — one of the nineteen documents it, and by its legacy login type. Two document a terminal route taking a password and a one-time code (npm and Fly.io), and both carry a caveat: Fly.io's fly auth login "Defaults to using browser-based authentication" and offers the password route as an option, while npm's npm login defaults to its web auth type and the password prompt belongs to the legacy one. 14 document a browser, dashboard or console step for the first credential, 1 documents only storing a key you already have, and 2 could not be read.

This method reads documentation, not sessions: it shows what a service claims, not that a route works, and an undocumented route is invisible to it. One criterion is a judgment and is stated as one: browser_session_required covers both docs that name a web dashboard, console or settings page as the place the first key is made, and commands the docs say open a browser. unstated is never inferred — two services' pages were unreadable to an anonymous fetch (OpenAI returned 403 to every documentation URL tried) or said nothing on either field.

15 of the 19 contradict the index's own earlier reading. An earlier sweep labelled all nineteen api_or_cli on the strength of a documented key-minting endpoint. Read for the first credential instead, 15 of them name a console or browser step: Cloudflare, Stripe, Vercel, AWS, Deepgram, Linear, Modal, MongoDB Atlas, Neon, Netlify, PayPal, Resend, Twilio, GitLab, fal.ai. A documented endpoint is not a reachable one.

Machine-readable at /first-credential.json — the same rows with every evidence quote and the URL it came from. The 88-service index this is drawn from is at /. Generated 2026-10-15.

The 19 services

ServiceWhat the first credential takesCommand or endpointMinting call needs a credential already heldTheir words
npmpassword + a code you can store
password_plus_storable_code
npm token createfalse
This will prompt you for your password, and, if you have two-factor authentication enabled, an otp.
Cloudflarea browser session
browser_session_required
dashboard: My Profile > API Tokens > Create Tokenunstated
From the Cloudflare dashboard ↗︎ , go to My Profile > API Tokens for user tokens.
Stripea browser session
browser_session_required
Dashboard API keys pageunstated
Use the API keys page in the Dashboard to create, reveal, expire, and rotate keys for the account or sandbox you’re viewing.
Vercela browser session
browser_session_required
POST https://api.vercel.com/v3/user/tokenstrue
Include the token in the Authorization header: Authorization: Bearer <TOKEN> Create and manage Access Tokens in your account settings .
AWSa browser session
browser_session_required
aws iam create-access-key / IAM CreateAccessKey; portal sign-in for short-term credentialstrue
However, you can copy and use temporary credentials that are available in the AWS access portal.
Deepgrama browser session
browser_session_required
POST /v1/projects/{id}/keys (after a Console-made first key)true
Create an API key using the Deepgram Console You must create your first API key using the Deepgram Console .
ElevenLabsunstated
unstated
POST /v1/service-accounts/{id}/api-keysunstated

no quotable evidence

unstated
Fly.iopassword + a code you can store
password_plus_storable_code
fly auth login (default browser-based); fly tokens createunstated
Supports browser-based, email/password and one-time-password authentication.
Lineara browser session
browser_session_required
Settings > Account > Security & Accessunstated
Visit Security & access settings to create and manage them.
Modala browser session
browser_session_required
modal token newtrue
modal token new Create a new token by using an authenticated web session.
MongoDB Atlasa browser session
browser_session_required
atlas auth login; atlas organizations apiKeys createtrue
--noBrowser false Don't automatically open a browser session
Neona browser session
browser_session_required
neon login (opens a browser); Console > API keystrue
You'll need to create your first API key from the Console, where you are already authenticated.
Netlifya browser session
browser_session_required
netlify loginunstated
This will open a browser window, asking you to log in with Netlify and grant access to Netlify CLI .
OpenAIunstated
unstated
POST /organization/projects/{id}/api_keys (page not readable)unstated

no quotable evidence

unstated
PayPala browser session
browser_session_required
POST /v1/oauth2/token with client ID and secrettrue
Here's how to get your client ID and client secret: Select Log in to Dashboard and log in or sign up.
Resenda credential you already hold
existing_credential_required
resend login --key; POST /api-keystrue
resend login Authenticate by storing your API key locally.
Twilioa browser session
browser_session_required
POST /2010-04-01/Accounts/{AccountSid}/Keys.jsontrue
You can create Main keys only in the Twilio Console (link takes you to an external page) .
GitLaba browser session
browser_session_required
user profile > Access tokensunstated
To create a personal access token: In the upper-right corner, select your avatar. Select Edit profile . In the left sidebar, select Access > Personal access tokens .
fal.aia browser session
browser_session_required
POST /v1/keys; fal.ai/dashboard/keystrue
Go to the Dashboard Navigate to fal.ai/dashboard/keys 2 Generate a Key Click Create Key

The key-minting call is documented as needing a credential already held for 10 of the nineteen; 1 documents a password prompt, and 8 state nothing either way.