GET Partner Profile
Read your service's current policy before provisioning members or enabling live access. This describes the partner identified by your token.
Endpoint
GET https://app.crosstrade.io/v1/api/partner/me
Headers
| Name | Required | Value |
|---|---|---|
| Authorization | Yes | Bearer <partner access token> with partner:read (also implied by partner:provision) |
No path parameters, query parameters or request body. Obtain your token through Partner Authentication.
Code examples
Set PARTNER_TOKEN to your service's access token.
- Python
- JavaScript
- cURL
import json
import os
import requests
response = requests.get(
"https://app.crosstrade.io/v1/api/partner/me",
headers={"Authorization": f"Bearer {os.environ['PARTNER_TOKEN']}"},
timeout=15,
)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
const response = await fetch("https://app.crosstrade.io/v1/api/partner/me", {
headers: { Authorization: `Bearer ${process.env.PARTNER_TOKEN}` },
});
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
console.log(JSON.stringify(await response.json(), null, 2));
curl -sS "https://app.crosstrade.io/v1/api/partner/me" \
-H "Authorization: Bearer $PARTNER_TOKEN"
Response
200 OK. Limits below are illustrative; use the values returned for your partner.
{
"success": true,
"partner": {
"id": "p_8f1c2d3e",
"slug": "acme_signals",
"name": "Acme Signals, LLC",
"status": "active",
"environments": [
"demo"
],
"seat_cap": 500,
"open_seats": 12,
"limits": {
"requests_per_minute": 600,
"reduction_requests_per_minute": 120,
"max_inflight": 4,
"max_identities_per_member": 2,
"max_accounts_per_member": 10,
"max_automation_per_member": 5
},
"stripe_mode": "live",
"live_enabled": false,
"billing": {
"status": "active",
"verified": true,
"grace_expires_at": null
},
"policy": {
"allows_new_seats": true,
"allows_entries": true,
"allows_reads": true
}
},
"meta": {
"requestId": "preq_4d3c2b1a09f8e7d6"
}
}
| Field | Meaning |
|---|---|
status | Effective service state: provisioning, active, past_due, suspended or disabled |
environments, live_enabled | Environments configured for your partner and whether delegated live access is enabled |
seat_cap, open_seats | Maximum funded seats and seats currently open |
limits | Shared per-partner budgets; requests can have different costs |
billing | Billing status, verification and any grace deadline |
policy | Whether the effective service state permits new seats, trading entries and reads |
Errors
| Status | Error | Meaning |
|---|---|---|
| 400 | validation_failed | A body or unsupported query parameter was supplied |
| 401 | unauthorized | Partner token missing, expired, revoked or for another audience |
| 403 | insufficient_scope, partner_not_enabled, partner_disabled | Scope or service policy refuses the read |
| 429 | rate_limited, too_many_concurrent_requests | Wait at least Retry-After seconds |
| 503 | partner_api_unavailable, policy_unavailable, auth_unavailable | API or authentication dependency unavailable |
See Partner errors for the common error envelope and recovery rules.