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.
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.
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
Callapi.agenticAutofill.v1.createAccessRequest on the extension’s service worker. See Fill with the browser extension for how to reach it.
The response
accessRequest.idto check its status. Use theid, not thepath.- Each
accessRequest.entries[].idto match what the person grants to what you asked for. appLinkto open the approval prompt on the person’s device.