Prerequisites
- A Predexy developer account. Register at app.revalonlabs.xyz or via
POST /api/v1/auth/register. - A valid session JWT (email/password login) to authenticate Console API calls.
Create an API key
Open the Developer Console
Go to app.revalonlabs.xyz and sign in with your developer account. Navigate to Developer Console → API Keys and click New API Key.Fill in a descriptive name (e.g.
Production Trading Bot), choose the permissions you need, and set a rate limit. Then click Create.Create a key via the API
You can also create keys programmatically using your session JWT. Endpoint:POST /api/v1/console/keys
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Human-readable label (1–100 chars) |
permissions | string | No | JSON-encoded array of permission strings. Defaults to all three read scopes. |
rate_limit | integer | No | Requests per minute (1–10,000). Default: 60. |
read:arbitrage— access arbitrage opportunity endpointsread:markets— access market browsing and discovery endpointsread:questions— access canonical question endpoints
key field in data is the value you’ll use in all subsequent requests. The key_prefix (first 12 characters) is what Predexy stores and displays in listings for identification.
Use your API key
Pass the key in theX-API-Key header on every request:
API key endpoints are separate from session-authenticated endpoints. The external arbitrage endpoint is
GET /api/v1/external/arbitrage/opportunities — not the session-only /api/v1/arbitrage/opportunities.List your API keys
Retrieve all keys on your account. The full key is never included — only thekey_prefix is returned.
Endpoint: GET /api/v1/console/keys
APIKeyInfo object includes:
| Field | Description |
|---|---|
id | UUID used to revoke the key |
name | Label you set at creation |
key_prefix | First 12 characters for identification |
permissions | JSON-encoded permission array |
rate_limit | Configured requests-per-minute limit |
is_active | false if the key has been revoked |
last_used_at | Last request timestamp, or null if never used |
created_at | Creation timestamp |
Revoke a key
Revoking a key is immediate and permanent. Any in-flight requests using the key will receive a401 INVALID_API_KEY response. Revoked keys cannot be reactivated.
Endpoint: DELETE /api/v1/console/keys/{id}
Rate limits
Your key’s rate limit (default 60 req/min, maximum 10,000 req/min) is enforced per rolling window. Every response includes these headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Your configured limit |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
429 RATE_LIMITED. Back off and retry after the X-RateLimit-Reset timestamp.