Deltalytix
Sign in

Deltalytix API

Authentication

OAuth 2.0 authorization code with PKCE, personal access tokens, scopes, and token formats.

Authentication

Deltalytix is its own OAuth 2.0 authorization server. Humans still sign in with Supabase; API tokens are minted and validated by Deltalytix.

Token formats

Tokens are opaque strings. Deltalytix stores only SHA-256 hashes.

KindPrefixLifetime
Access tokendltx_at_<48 hex chars>3600 seconds
Refresh tokendltx_rt_<48 hex chars>30 days (rotated on use)
Personal access token (PAT)dltx_pat_<48 hex chars>No expiry until revoked
Client IDdltx_app_<24 hex chars>—
Client secretdltx_secret_<48 hex chars>Shown once at creation

Scopes

Request only the scopes your integration needs. Space-separate them in OAuth scope parameters.

ScopeAccess
profile:readRead the authenticated user profile
trades:readList trades
trades:writeCreate trades
accounts:readList accounts and related metrics
connections:readList broker connections
connections:writeCreate connections and trigger sync
imports:writeUpload import files
metrics:readRead summary, equity, and account metrics

Personal access tokens

PATs are ideal for scripts and private tools. Create and revoke them from the dashboard developer settings, choosing the scopes you need. The token value is shown once.

curl https://www.deltalytix.app/api/v1/me \
  -H "Authorization: Bearer dltx_pat_YOUR_TOKEN"

OAuth 2.0 authorization code + PKCE

1. Authorize

Send the user to the consent page (HTML). Unauthenticated users are redirected to /authentication?next=….

GET /oauth/authorize
  ?client_id=dltx_app_…
  &redirect_uri=https%3A%2F%2Fyour-app.example%2Fcallback
  &response_type=code
  &scope=profile%3Aread%20trades%3Aread
  &state=csrf-token
  &code_challenge=BASE64URL_SHA256_OF_VERIFIER
  &code_challenge_method=S256
QueryRequiredNotes
client_idYesRegistered OAuth app
redirect_uriYesMust exactly match a registered URI
response_typeYesMust be code
scopeYesSpace-separated scopes
stateRecommendedCSRF protection; echoed on redirect
code_challengeRecommendedPKCE S256 challenge
code_challenge_methodWith challengeMust be S256

On approve, Deltalytix issues a single-use authorization code (10 minute TTL) and redirects:

https://your-app.example/callback?code=…&state=…

On deny:

https://your-app.example/callback?error=access_denied&state=…

2. Exchange the code for tokens

POST /api/oauth/token accepts form-urlencoded or JSON.

curl -X POST https://www.deltalytix.app/api/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://your-app.example/callback" \
  -d "client_id=dltx_app_…" \
  -d "code_verifier=PKCE_VERIFIER"

Confidential clients may send client_secret instead of (or in addition to) PKCE, depending on how the app was registered.

Successful response:

{
  "access_token": "dltx_at_…",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "dltx_rt_…",
  "scope": "profile:read trades:read"
}

OAuth errors follow RFC 6749:

{
  "error": "invalid_grant",
  "error_description": "Authorization code is invalid or expired"
}

3. Call the API

curl https://www.deltalytix.app/api/v1/trades?limit=10 \
  -H "Authorization: Bearer dltx_at_…"
const res = await fetch("https://www.deltalytix.app/api/v1/trades?limit=10", {
  headers: {
    Authorization: `Bearer ${accessToken}`,
  },
});

4. Refresh the access token

curl -X POST https://www.deltalytix.app/api/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "refresh_token",
    "refresh_token": "dltx_rt_…",
    "client_id": "dltx_app_…",
    "client_secret": "dltx_secret_…"
  }'

Refresh tokens rotate on use. Store the new refresh_token from each successful response.

Public clients that obtained tokens via PKCE may refresh without a client secret when that was how the original token was issued.

5. Revoke a token

curl -X POST https://www.deltalytix.app/api/oauth/revoke \
  -H "Content-Type: application/json" \
  -d '{
    "token": "dltx_at_…",
    "client_id": "dltx_app_…",
    "client_secret": "dltx_secret_…"
  }'

Revocation always returns 200, whether or not the token was found.

Resource-server failures

Missing or invalid Bearer tokens return 401:

{
  "error": "unauthorized",
  "message": "…"
}

with a WWW-Authenticate header pointing at protected-resource metadata.

Valid tokens without the required scope return 403:

{
  "error": "insufficient_scope",
  "message": "…"
}

Managing apps and tokens

In the dashboard developer settings you can:

  • Create OAuth apps (name, redirect URIs, allowed scopes) — client_id is always visible; client_secret is shown once
  • Create and revoke personal access tokens with chosen scopes — the PAT value is shown once

Footer

Deltalytix

Advanced analytics for modern traders.

GitHubYouTubeDiscord

Product

  • Features
  • Pricing
  • Prop Firms Catalogue
  • Teams
  • Support
  • Documentation

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimers
© 2026 Deltalytix. All rights reserved.
Trading in futures and forex markets involves significant risks and is not suitable for all investors. An investor could potentially lose all or a portion of their initial investment. Risk capital is money that can be lost without jeopardizing one's financial security or lifestyle. Only risk capital should be used for trading, and only those with sufficient risk capital should consider trading. Past performance is not necessarily indicative of future results.
Hypothetical performance results have many inherent limitations, some of which are described below. No representation is being made that any account will or is likely to achieve profits or losses similar to those shown; in fact, there are frequently sharp differences between hypothetical performance results and the actual results subsequently achieved by any particular trading program. One of the limitations of hypothetical performance results is that they are generally prepared with the benefit of hindsight. In addition, hypothetical trading does not involve financial risk, and no hypothetical trading record can completely account for the impact of financial risk in actual trading. For example, the ability to withstand losses or to adhere to a particular trading program in spite of trading losses are material points which can also adversely affect actual trading results. There are numerous other factors related to the markets in general or to the implementation of any specific trading program which cannot be fully accounted for in the preparation of hypothetical performance results and all of which can adversely affect actual trading results.