Skip to main content
An access request describes the task and the websites where your agent needs to sign in. 1Password shows the request to the person, who chooses which of their logins, if any, to grant for each website. You never specify a 1Password item.

Batch what the task needs

Create one request per task, with every login the task needs, before your agent starts. One request can include up to five login entries. Waiting until the agent reaches each sign-in page means more prompts and more waiting for the person. If you already hold a reference for a login from an earlier approval and your product doesn’t promise per-session approval, use it to fill the login instead of asking again. Create a new request only for a website you don’t yet have a reference for, or when a fill fails because access ended.

The request

string
A description of the task, shown to the person above the logins. Up to 140 characters. Plain text only: 1Password removes invisible and control characters before it validates the request, so don’t rely on them being kept.
object[]
required
The logins you need, shown in the order you send them. Between 1 and 5.
You don’t supply a request ID or entry IDs: 1Password assigns them and returns them. Fields not listed here are ignored.

Write text the person can act on

The person sees your goal and reasons exactly as you send them. 1Password doesn’t translate or rewrite them.
  • Write in the person’s language, in words they’d use.
  • Keep personal names, message content, account identifiers, and secrets out of every field.
  • No markup or control characters.
  • Say what the agent will do with the login, not how it works.

Design good requests

A good request is:
  • Recognizable: the person understands the task.
  • Specific: each entry describes one concrete login the task needs.
  • Minimal: it asks only for the logins the task needs.
  • Non-sensitive: it leaves out secrets and personal context that doesn’t matter.
  • Person-centered: the goal and reasons describe actions the person recognizes.
  • Flexible: it doesn’t assume which item the person will pick.
The first explains the task to the person. The second describes your implementation and tries to decide which item the person picks.

Where the request text goes

Your goal, reasons, keywords, and websites travel to the person’s 1Password app inside the approval link, which is why you treat the link as sensitive.

Create the request

Call api.agenticAutofill.v1.createAccessRequest on the extension’s service worker. See Fill with the browser extension for how to reach it.

The response

Store the access request. You need:
  • accessRequest.id to check its status. Use the id, not the path.
  • Each accessRequest.entries[].id to match what the person grants to what you asked for.
  • appLink to open the approval prompt on the person’s device.
The request, its ID, and its entry IDs belong to this connection. You can create a request in one browser session and continue in another, as long as both use the same person’s token and integration key.

Errors