Hoe gebruik je de Requests library voor REST API trading calls?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Python Libraries voor Algoritmische Trading · 2026-02-15 · 5 min leestijd

Stel je voor: je hebt een bot die voor je handelt terwijl je slaapt. Je wilt een order plaatsen via een broker API, maar je weet niet hoe je die HTTP-call moet maken zonder gedoe.

Geen zorgen, met de Python Requests library regel je dat in een paar regels code. We doen dit samen, stap voor stap, zonder poespas. Je leert hoe je een trade plaatst, respons controleert, en fouten vangt voor een stabiele setup.

Wat je nodig hebt voordat je begint

Je hebt een computer met Python 3.9 of nieuwer nodig. Installeer de Requests library met pip install requests.

Je broker moet REST API ondersteunen, bijvoorbeeld Interactive Brokers via hun TWS API, of een platform als Alpaca, Kraken, of Binance.

Voor Interactive Brokers moet TWS of IB Gateway draaien op localhost:7497 (paper) of 7496 (live). Verder heb je een API-sleutel of token nodig. Bij Alpaca is dat gratis voor paper trading.

Bij Kraken krijg je een API-key en secret. Bij IB moet je een account hebben en de API inschakelen in TWS.

Zorg dat je een testaccount gebruikt, nooit je echte geld bij de eerste runs. Houd een risicomanagement plan klaar: limieten per trade, max drawdown, en een kill-switch voor de bot. Reken op 20 minuten voor de basisopzet en 1-2 uur voor een eerste werkende call. Je hebt een internetverbinding nodig en een rustige werkplek.

Zorg dat je een code-editor hebt, zoals VS Code of PyCharm. En natuurlijk een bak koffie, want we gaan bouwen.

Stap 1: je environment klaarmaken en de broker kiezen

  1. Open je terminal en draai pip install requests. Dit duurt 10-30 seconden.
  2. Kies een broker. Voor dit voorbeeld pakken we Alpaca paper trading. Je krijgt een gratis API-key en secret via hun site.
  3. Sla je API-sleutel en secret veilig op. Gebruik environment variables: ALPACA_API_KEY en ALPACA_SECRET_KEY. Nooit hardcoded in je script.
  4. Installeer python-dotenv met pip install python-dotenv. Dit laadt je keys uit een .env-bestand.
  5. Maak een map algo_bot en daarin een bestand config.env. Voeg je keys toe: ALPACA_API_KEY=xxx en ALPACA_SECRET_KEY=yyy.

Veelgemaakte fout: keys per ongeluk pushen naar GitHub. Voeg .env en config.env toe aan je .gitignore. Tijd: 5 minuten.

Tip: als je IB gebruikt, zorg dat TWS draait en API-toegang aan staat onder Global Configuration > API > Settings. Gebruik poort 7497 voor paper. Test eerst een simpele ping naar localhost, en implementeer daarna 80+ technische indicatoren voor je Python trading bot.

Stap 2: maak je eerste GET-call om rekeninginformatie op te halen

We bouwen eerst een veilige function die je headers klaarmaakt. Vergeet niet de beveiliging van je API keys goed in te richten; bij Alpaca onderteken je elke call met je secret.

  1. Maak een bestand alpaca_client.py. Importeer requests, json, time en hashlib.
  2. Schrijf een functie get_headers(method, endpoint, query=''). Zet een timestamp in milliseconden. Maak een signature met HMAC-SHA256. Gebruik je secret als key.
  3. Voeg headers toe: APCA-API-KEY-ID en APCA-API-SECRET-KEY. En de timestamp en signature.
  4. Doe een GET naar https://paper-api.alpaca.markets/v2/account. Gebruik je headers.
  5. Print de JSON response. Je ziet buying_power, equity en status.

We gebruiken de tijd uit de server om replay-aanvallen te voorkomen. Codefragment voor de signature:

timestamp = str(int(time.time() * 1000))
message = timestamp + method + endpoint + query
signature = hmac.new(secret.encode('utf-8'), message.encode('utf-8'), hashlib.sha256).hexdigest() Veelgemaakte fout: je vergeet de milliseconden-timestamp of gebruikt een verkeerd endpoint. Controleer of je paper-URL gebruikt, niet live. Tijd: 10 minuten. Verwacht een response code 200.

Als je 403 krijgt, check je keys. Als je 429 krijgt, ben je rate-limited: wacht 1 seconde en probeer opnieuw.

Stap 3: een order plaatsen met een POST-call

Nu we het account kunnen uitlezen, plaatsen we een testorder. We kopen 10 aandelen AAPL op de huidige marktprijs, alleen in paper trading. Je bot moet altijd weten wat het risico is: stop-loss en position size.

  1. Bouw een functie place_order(symbol, qty, side, type, time_in_force). Gebruik POST naar /v2/orders.
  2. Vul de payload: symbol='AAPL', qty=10, side='buy', type='market', time_in_force='day'.
  3. Voeg de headers toe via je get_headers-functie. Zet content-type op application/json.
  4. Verstuur de call met requests.post(url, headers=headers, json=payload).
  5. Check de response: lees order_id en status. Sla deze op voor later annuleren of monitoren.

Veelgemaakte fout: je vergeet time_in_force, waardoor de order open blijft. Gebruik altijd een limiet of day-order voor controle. Tijd: 10 minuten.

Probeer daarna een limietorder: type='limit', voeg limit_price=150.00 toe. Zie hoe de order in het systeem blijft tot de prijs wordt geraakt.

Stap 4: fouten vangen en rate-limits beheren

Een bot zonder error handling crasht bij een storing. Je wilt vriendelijk herstellen en loggen.

  1. Wrap je calls in try/except. Vang requests.exceptions.RequestException en JSON-decode errors.
  2. Check status codes: 200 is ok, 201 is created, 400 is bad request, 401 ongeautoriseerd, 403 verboden, 404 niet gevonden, 429 rate limit, 500 server error.
  3. Voeg een backoff toe: bij 429 wacht je 1, 2, 4 seconden. Gebruik een simpele loop met max 3 retries.
  4. Log elke call: timestamp, endpoint, status, response time. Gebruik de time-module voor elapsed time.
  5. Bewaar transacties in een CSV of database voor backtesting. Denk aan een kolom: timestamp, symbol, qty, price, order_id.

Veelgemaakte fout: geen retry, waardoor je trades mist. Te veel retries zonder wachten leidt tot bans. Tijd: 15 minuten.

Tip: gebruik een kleine buffer voor je risico. Bij marketorders betaal je spread. Bij limitorders bepaal je de prijs, maar riskeer je uitvoering op een slecht moment.

Stap 5: sluit af met een verificatie-checklist

Check of je setup echt werkt voor echte trading bots. Als dit allemaal lukt, zit je goed. Je bot is klaar voor de volgende stap: automatiseren met een scheduler en integreren met je broker API voor echte markten. Hou het simpel, meet wat je doet, en optimaliseer je strategie met Optuna stapje voor stapje.

  • Je kunt je account ophalen met een GET-call en ziet equity en buying_power.
  • Je kunt een marketorder plaatsen en krijgt een order_id terug.
  • Je kunt een limitorder plaatsen en annuleren via DELETE /v2/orders/{order_id}.
  • Je vangt errors netjes en logged elke call met tijd en status.
  • Je gebruikt environment variables en geen keys in code.
  • Je test alleen op paper trading voorafgaand aan live.
  • Je hebt een eenvoudig risicoplan: max 1% per trade, stop-loss ingesteld.
  • Je backtest je strategie op historische data voordat je live gaat.
Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Over Alex de Vries

Alex is een ervaren quantitatief analist en Python-ontwikkelaar die complexe trading concepten vertaalt naar begrijpelijke, praktische handleidingen voor zowel beginners als gevorderden.

Volgende stap
Bekijk alle artikelen over Python Libraries voor Algoritmische Trading
Ga naar overzicht →