Skip to content

Authentication

The Auth sub-tab on a Composer request picks how Probe attaches credentials to the outgoing request. Auth is set on the request itself, on the collection (as a default for everything underneath), or by inheriting from the parent collection. The same set of auth types is available at both levels.

TypeWhere it goesFields
Inherit from parentResolved at send time from collection authNone — uses whatever the collection has configured
No AuthNothing is addedNone
Bearer TokenAuthorization: Bearer <token> headertoken
Basic AuthAuthorization: Basic <base64> headerusername, password (encoded together at send time)
API KeyCustom header (default: X-API-Key)key (header name), value
OAuth 2.0Authorization: Bearer <token> headerToken URL, client ID/secret, scope, redirect URI, grant type — used to fetch a token, then attached as Bearer

Variables work in every field. {{token}} in the Bearer field resolves at send time using the rules from Environments & Variables.

The simplest case. One field — the token. Probe sends:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs…

Pair this with an environment variable so you don’t paste a real token into your collection. A common pattern:

  1. Define token in your environment.
  2. Set the request’s auth to Bearer Token with value {{token}}.
  3. Use a pre-request script on a /login request to populate the variable: pro.environment.set('token', pro.res.json.access_token).

Now the rest of your collection picks up fresh tokens automatically.

Username and password. Probe Base64-encodes username:password at send time and emits:

Authorization: Basic dXNlcjpwYXNz

Both fields support variables. Mark the password as a secret variable (see Environments & Variables) so it’s masked in the editor and excluded from Postman exports.

Picks any header name and any value. The default is X-API-Key, but plenty of vendors use their own (apikey, X-Auth-Token, Authorization: <key> without a scheme prefix). Set:

  • Key — header name.
  • Value — header value.

Probe adds it as a header on the outgoing request. Variables work in both fields.

Probe’s OAuth 2.0 helper runs the grant flow once and hands you a token, which you then use as a Bearer. Two grants are supported:

  • Client Credentials — POST to the token URL with client_id, client_secret, and optional scope. No browser; you get a token straight back.
  • Authorization Code — Probe opens your default browser at the authorization URL, spins up a local listener on the redirect URI’s port (default http://localhost:9876/callback), captures the code, then exchanges it at the token URL.

Fields the dialog asks for:

FieldBoth grantsAuth code only
Token URLyesyes
Client IDyesyes
Client Secretyesyes
Scopeyesyes
Authorization URLyes
Redirect URIyes

Hit Get Token, complete the flow, and the access token populates a Bearer field. From there it behaves exactly like a manually-pasted Bearer token — Probe attaches Authorization: Bearer … to the request.

The flow parses expires_in and refresh_token from the token response, and the values are visible in the dialog. Refreshing on expiry isn’t automatic — when the token goes stale, click Get Token again, or write a pre-request script that POSTs to the token URL with grant_type=refresh_token and stores the new value via pro.environment.set().

Set the request’s auth to Inherit from parent (the default for newly-created requests) and Probe applies the collection’s default auth at send time. This is the right setting for the vast majority of your requests — configure auth once on the collection, and every request inside picks it up.

The resolution rule:

  1. Request auth is anything other than Inherit → that auth wins.
  2. Request auth is Inherit → look at the collection’s default auth. If set, use it.
  3. Otherwise → no auth header is attached.

The Auth tab shows a subtle hint when Inherit is selected, telling you what the parent has configured (e.g. “Inheriting Bearer Token from collection ‘My API’”). If the parent’s auth changes, every inheriting request follows along automatically.

Open the collection’s Info view (click the collection name in the sidebar header, or right-click → Collection Info), pick the Auth tab, and configure exactly the same five types listed above. The collection’s auth is the value that Inherit resolves to.

If you set a collection’s auth to No Auth, inheriting requests get no header at all. If you set it to Inherit from parent at the collection level, and there’s no further parent, the same applies — no header.