Prerequisites
- Agent Checkout integration: Complete the Agent Checkouts quickstart so your application can start a run, observe it, and send messages.
- Server-side API key: Use a production key with
agent-checkouts.create,agent-checkouts.read,agent-checkouts.update, andagent-checkouts.browser-profiles.createscopes.
x-crossmint-user-id on every request.
Sign In Once and Reuse the Session
1
Create a browser profile for the user
Create one profile and store its The response contains metadata only. It does not return cookies, tokens, or other browser state.A user can have one browser profile. Reuse that profile rather than creating one for each merchant.
id with the user in your system. The optional label is only for your own bookkeeping.2
Attach the profile to a checkout run
Pass the profile as You can also include
browser.profileId when you start a run. The first run starts without a saved merchant session, so tell the agent to sign in before it buys.browser.location in the same object when the checkout should run from a particular country. See Configure a Checkout.Follow the run and answer sign-in requests through Handle Buyer Inputs. An accepted form response does not itself confirm successful sign-in.3
Complete the first signed-in checkout
Answer each request by its
requestId, then continue observing the run. After the checkout finishes cleanly, the merchant’s session is stored in the browser profile.The profile itself does not report what happened during a checkout. Read the run and its messages to confirm whether the agent signed in, encountered another verification step, or completed the purchase.4
Reuse the profile on later runs
Pass the same The run loads the saved session before it navigates. If the merchant has expired the session or requires the user to sign in again, the agent sends new input requests. Handle them the same way as the first run.
browser.profileId on the next checkout for this user.How Browser Profiles Stay Protected
- The profile API returns metadata only. Cookies, tokens, and other saved browser state are not returned.
- Saved browser state is not added to a model prompt. It is loaded only into the browser for that user’s checkout.
- Each run has its own browser. The browser is released when the run finishes.
- Payment authorization is separate. Follow Authorize Payments when the run asks for a card credential.
Manage a Browser Profile
Browser profile routes live underhttps://www.crossmint.com/api/unstable/agent-checkouts/browser-profiles and are documented with the Agent Checkouts API reference.
- A user can have one profile. Creating another returns
409. - Requesting a profile owned by another user returns
404, so its existence cannot be probed. labelis the only editable field.- Deleting a profile irreversibly erases its saved browser state. Runs already using it continue, and erasure finishes after they end.
Next Steps
Authorize Payments
Pay with an Agent Card, a merchant-saved card, or a local method
Configure a Checkout
Set purchase context before starting the run

