Skip to main content

Send Your First Request

Before you start executing live trading operations, it is highly recommended to verify your connection with a simple test request. By sending a basic request to view your account details, you can confirm that your API key, security signature, account access, and host connection are all working properly.

Before you begin​

Make sure you have the following ready before making your request:

  • Your API key and secret, stored securely.
  • Your specific account ID.
  • The account Access Point returned by Access Point / Host Discovery. Call discovery on the DNS widget Gateway host before sending this request.
  • The ability to generate your EXN-DATA and EXN-SIGN security headers using Request signing.

Example requests​

For a complete runnable example that loads your private key, discovers the Access Point and sends this request, see Code Examples.

Use your selected host and account ID in the request below. The example hostname is illustrative. Keep the account ID in the URL and signed path identical; sign the path and query exactly as sent.

Here is an example of what a test request looks like using a command-line tool like curl:

curl -X GET "https://ap-4decef67.exness.com/v1/configuration/accounts/123456/account" \
-H "EXN-API-KEY: exnsk-{your_public_api_key}" \
-H "EXN-IDEMPOTENCY-KEY;" \
-H "EXN-TIMESTAMP: 1773656070123" \
-H "EXN-SIGN-VERSION: 1" \
-H "EXN-DATA: <base64url_encoded_payload>" \
-H "EXN-SIGN: <base64url_encoded_signature>"

If you are building this into your own code, here is a basic structural example using a validated signing helper:

# Pseudo-code: use your validated signing helper.
headers = sign_request(
method="GET",
path="/v1/configuration/accounts/123456/account",
body=None,
idempotency_key="",
)
response = http.get("https://ap-4decef67.exness.com/v1/configuration/accounts/123456/account", headers=headers)

What to expect in return​

If your request is successful, the server will return your account configuration details. Depending on your setup, this will include information like your account currency, leverage, margin call level, and stop-out level.

Your response should look something like this:

{
"account_id": 123456,
"currency": "USD",
"leverage": "1:2000",
"margin_call_level": "60",
"stop_out_level": "0"
}

Always use the generated API Reference documentation as your final guide for the exact response fields to ensure your system processes the data correctly.

Troubleshooting common errors​

If your request fails, refer to this table to diagnose the issue and find a quick solution.

HTTP status / codeWhat It MeansHow to Fix It
401 / 1000Invalid API keyCheck your API key value, expiration date, and account access.
401 / 1001Invalid signatureDouble-check your payload data, private key, timestamp, and data encoding format.
404 / 2000Account not foundVerify your account ID and check your API key permissions.
429 / 1Rate limitedYou are sending requests too quickly; slow down and try again later.
503 / 2Temporary unavailabilityOur systems are temporarily busy; wait a moment and retry your request.