Skip to main content

API Keys

All API requests require authentication using a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEY

Getting Your API Key

1

Log in to InnovaTrading

Go to innova-trading.com and sign in to your account.
2

Navigate to Settings

Click on your profile and go to SettingsAPI Keys.
3

Create a New Key

Click “Create API Key”, give it a name, and copy the generated key.
The API key is only shown once. Store it securely!

Using Your API Key

curl https://api.innova-trading.com/api/external/bars \
  -H "Authorization: Bearer sk_live_abc123..."

Security Best Practices

Never expose in client code

API keys should only be used server-side. Never include them in frontend JavaScript.

Use environment variables

Store your API key in environment variables, not in source code.

Rotate regularly

Generate new API keys periodically and revoke old ones.

Use separate keys

Create different keys for development and production.

Environment Variables

INNOVA_API_KEY=sk_live_abc123...

Error Responses

401 Unauthorized

Missing or invalid API key:
{
  "error": "unauthorized",
  "message": "Missing Authorization header"
}
{
  "error": "unauthorized",
  "message": "Invalid API key"
}

403 Forbidden

Valid API key but no access to the requested resource:
{
  "error": "forbidden",
  "message": "Symbol XAUUSD not allowed for your API key",
  "allowed_symbols": ["EURUSD", "GBPUSD", "USDJPY"]
}

API Key Permissions

Each API key has specific permissions:
PermissionDescription
read:barsFetch OHLC market data
write:indicatorsSubmit indicator signals
read:indicatorsRead submitted indicators
delete:indicatorsDelete indicators
By default, new API keys have all permissions enabled. Contact support for custom permission setups.

Rate Limiting

API keys are rate-limited based on your plan:
PlanRequests/HourConcurrent
Free1005
Pro1,00020
EnterpriseCustomCustom
When rate limited, you’ll receive:
{
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Please wait before retrying.",
  "retry_after": 60
}
Use exponential backoff when hitting rate limits. Start with a 1-second delay and double it with each retry.