curl --request POST \
--url https://api.anchorbrowser.io/v1/identities/dynamic/resolve/{session_id} \
--header 'Content-Type: application/json' \
--header 'anchor-api-key: <api-key>' \
--data '
{
"option_index": 0,
"values": {
"username": "user@example.com",
"password": "secret"
}
}
'{
"type": "decision",
"session_id": "abc-123",
"host": "example.com",
"current_step_label": "Sign in",
"step_id": "root/login",
"options": [
{
"step_id": "root/login/password",
"label": "Email and password",
"automatable": true
},
{
"step_id": "root/login/google",
"label": "Continue with Google",
"automatable": false
},
{
"step_id": "root/login/sso",
"label": "Continue with SSO",
"automatable": false
}
]
}Resolve Dynamic Auth Flow Step
Advances the flow by answering the current step. The body depends on the
last presentation’s type — do not mix the two shapes:
decision: send onlychoice(astep_idfromoptions). Do not sendoption_indexorvalues.form: sendoption_index(index intooptions) andvalues(field name → string). Do not sendchoice.
Do not call /resolve for detection_failed, authenticated, or failed.
For retryable detection_failed, a timeout, or a 409 (another transition
still in flight), poll GET .../state/{session_id} until a
decision/form/authenticated view appears, then continue. If
detection_failed is not retryable, open live_view_url to finish signing in.
curl --request POST \
--url https://api.anchorbrowser.io/v1/identities/dynamic/resolve/{session_id} \
--header 'Content-Type: application/json' \
--header 'anchor-api-key: <api-key>' \
--data '
{
"option_index": 0,
"values": {
"username": "user@example.com",
"password": "secret"
}
}
'{
"type": "decision",
"session_id": "abc-123",
"host": "example.com",
"current_step_label": "Sign in",
"step_id": "root/login",
"options": [
{
"step_id": "root/login/password",
"label": "Email and password",
"automatable": true
},
{
"step_id": "root/login/google",
"label": "Continue with Google",
"automatable": false
},
{
"step_id": "root/login/sso",
"label": "Continue with SSO",
"automatable": false
}
]
}Authorizations
API key for your Anchor Browser account, sent as the anchor-api-key header on every
request. Create one at app.anchorbrowser.io (API Access).
Body
- form
- decision
Body depends on the last view.type. Use the decision shape or the form
shape — not both.
Response
Next presentation of the auth flow
- decision
- form
- detection_failed
- authenticated
- failed
Presentation returned by start/resolve. GET /state nests the same object as
view when there is something to show. Discriminated on type. Call /resolve
only for decision or form.
Was this page helpful?

