Skip to main content

GET Member

Read one member's current seat and authorization state. The response includes the membership ETag for POST Reopen Member. It never returns an authorization code or a Connect URL.

Endpoint​

GET https://app.crosstrade.io/v1/api/partner/users/{external_id}

Headers​

NameRequiredValue
AuthorizationYesBearer <partner access token> with partner:read (also implied by partner:provision)

Path parameters​

NameTypeRequiredDescription
external_idstringYesYour member id: 1–64 letters, digits, periods, underscores or hyphens

No query parameters or request body.

Code examples​

Set PARTNER_TOKEN and replace th_8831 with your member's external id.

import json
import os
import requests

external_id = "th_8831"
response = requests.get(
f"https://app.crosstrade.io/v1/api/partner/users/{external_id}",
headers={"Authorization": f"Bearer {os.environ['PARTNER_TOKEN']}"},
timeout=15,
)
response.raise_for_status()
print("ETag:", response.headers.get("ETag"))
print(json.dumps(response.json(), indent=2))

Response​

200 OK, with ETag: "v1" in this example. See the member field reference.

{
"success": true,
"member": {
"external_id": "th_8831",
"uid": "k3Qz9pLa",
"email": "member@example.com",
"name": "Jamie Rivera",
"status": "connected",
"ownership_verified": true,
"version": 1,
"environments": [
"demo"
],
"metadata": {},
"seat": {
"started": "2026-10-15T14:02:11Z",
"ended": null
},
"created": "2026-10-15T14:02:11Z",
"authorization": {
"status": "exchanged",
"flow_id": "pcf_a1b2c3d4e5f6",
"purpose": "authorize",
"generation": 1
},
"grant": {
"version": 1,
"active": true
},
"events_high_water": 42
},
"meta": {
"requestId": "preq_5e4d3c2b1a0f9e87",
"etag": "\"v1\""
}
}

connected records an approved authorization. grant.active reports whether the grant remains active; neither field proves the member's access token or broker session is currently usable. Use GET Member Broker Status for stored connection health.

Errors​

StatusErrorMeaning
400validation_failedMalformed external id, unsupported query parameter or unexpected body
401unauthorizedInvalid partner token
403insufficient_scope, partner_not_enabled, partner_disabledScope or service policy refuses the read
404member_not_foundNo member with that external id under your partner
429rate_limited, too_many_concurrent_requestsHonor Retry-After
503storage_unavailable, policy_unavailable, auth_unavailable, partner_api_unavailableRetry with backoff

See Partner errors for response shapes.