GET/v1/auth/verify
Verify credentials and entitlement
Verifies that an API key is valid, unrevoked, and checks active tier subscription status.
Endpoint Usage & Plan Rules
Plan Access
All Plans
No subscription required
Result Clamping
Not Clamped
Full response returned
Request Examples
curl -s -H "Authorization: Bearer $WSO_API_KEY" \
"https://api.wheelstrategyoptions.com/v1/auth/verify"Try it
GET/v1/auth/verify
Any accountAdd your API key to send.
Response
Send a request to see the live response, its status, timing, and rate-limit headers.
Response Attributes (200 OK)
| Field | Type | Nullable | Description |
|---|---|---|---|
| key_id | integer | No | Control plane database identifier of the API key. |
| key_prefix | string | No | Key prefix identifier for dashboard display (first 16 characters). |
| status | string | No | Authentication state ('authenticated'). |
| plan | string | Yes | Account subscription plan id (for example 'basic'), returned even if subscription is currently inactive. |
| subscription_status | string | Yes | Current Stripe subscription status ('active', 'trialing', 'past_due', etc.). |
| entitled | boolean | No | Whether the key holder is entitled to access paid data endpoints. |
| entitlement_reason | string | No | Reason code if unentitled ('subscription_required', 'subscription_inactive', etc.). |
Response Example
json
{
"key_id": 2,
"key_prefix": "wso_live_YOURKEY",
"status": "authenticated",
"plan": "basic",
"subscription_status": "active",
"entitled": true,
"entitlement_reason": ""
}Error Responses
| Status | Description |
|---|---|
| 401 | Unauthorized. Missing, malformed, or invalid API key credential. |
| 403 | Forbidden. Rejection reasons: `wrong_credential_type` (session token presented on API route), `origin_forbidden` (origin authentication failed). |
| 404 | Not Found. Requested resource, ticker symbol, or option contract does not exist. |
| 405 | Method Not Allowed. Returned with an `Allow` header when an unsupported HTTP method is used. Error code: `method_not_allowed`. (HEAD is served on all GET routes and counts against the rate limit like GET.) |
| 429 | Too Many Requests. Rejection reasons: `rate_limited` (exceeded per-minute rate limit or per-IP rate limit), `too_many_auth_failures` (edge lockout). |
| 500 | Internal Server Error. Unhandled internal server or database error. |
| 503 | Service Unavailable. Backing database, cache, or external provider connection unavailable. |