GoRunner docs
Search or askSearch⌘K

Check a sign-in

Since v2026.10.8

GET/api/connections/oauth2/attempts/{attemptId}

Reads how a sign-in you started is going.

Needs an API token with the Read permission for connections (connection:read).

Parameters

Path

attemptIdRequired · string

The attemptId the start answered.

Status

pending
The service hasn’t sent the browser back yet. Ask again in a few seconds.
connected
connectionId names the connection.
failed
reason: denied, service_error, failed, cancelled or expired. error says it for a person.

Only the token that started it can read it. A sign-in started from GoRunner’s own pages answers more states, such as launched.

Responses

  • 200OK

    Where the sign-in stands.

  • The token lacks the Read permission for connections.

  • Not a sign-in you started, or one whose link ran out over an hour ago.

  • Something failed on GoRunner’s side. Try again.

  • This server can’t read sign-ins now. Try again.

Any call can also answer: 401 UNAUTHORIZED · 401 TOKEN_ENDED · 403 TOKEN_SURFACE_OFF · 403 FEATURE_OFF · 403 EMBED_NOT_ALLOWED · 403 EMBED_NOT_AVAILABLE · 403 ACCOUNT_SUSPENDED · 429 RATE_LIMITED · 503 BUSY · 503 PAUSED · 503 SERVICE_UNAVAILABLE. See Errors.

Request

GORUNNER="https://api.gorunner.io"
GORUNNER_TOKEN="grt_…"  # needs Read for connections
ATTEMPT_ID="your-attempt-id"  # from the start

URL="$GORUNNER/api/connections/oauth2/attempts/"
URL="${URL}$ATTEMPT_ID"
curl "$URL" \
  -H "Authorization: Bearer $GORUNNER_TOKEN"

Response · 200 OK

json
{
  "data": {
    "attemptId": "Zq3XbN0iJm7dQe8TfR2wLg",
    "status": "connected",
    "connectionId": "0f8b2c7e-4a51-4d3e-9b2a-6c1d2e3f4a5b",
    "expiresAt": "2026-10-25T09:10:00Z"
  }
}
Every field

It takes no body.

Response · 200 OK, a sign-in from GoRunner’s own pages

dataobject
statusstring

pending — the popup has not bound yet; launched — the person is at the provider; connected — the tokens are stored; failed — see error; expired — the attempt aged out, or never existed.

One of pending, launched, connected, failed, expired.

connectionIdUUID

The connection signed in: for a sign-in that makes its connection, present once it connected.

reasonstring

Only when failed: denied — the person said no on the provider’s page; other_window — the sign-in finished in a browser that did not start it; service_error — the provider answered with an error; failed — anything on this side (the connection, its client, storage).

One of denied, other_window, service_error, failed, cancelled.

errorstring

Only when failed: why it ended, as a sentence for a person.

accountstring

Only when connected: who signed in, when the test after the sign-in named them.

previousAccountstring

Only when a sign-in again signed in as someone else than before: who it was.

accountChangedboolean

Response · 200 OK, a sign-in an API token started

dataobject
attemptIdstring
statusstring

pending — the provider has not sent the browser back yet; connected — the connection holds its tokens; failed — see reason.

One of pending, connected, failed.

connectionIdUUID

Only when connected: the connection made (or signed in again).

reasonstring

Only when failed: denied — the person said no on the provider’s page; service_error — the provider answered with an error; failed — anything on this side; cancelled — the sign-in was stopped (POST /api/connections/oauth2/attempts/{attemptId}/cancel, by the token that started it; no partner endpoint stops one); expired — the link ran out first.

One of denied, service_error, failed, cancelled, expired.

errorstring

Only when failed: why, as a sentence for a person.

accountstring

Only when connected: who signed in, when the test after the sign-in named them.

expiresAttime