Familiar by design
The order model follows Alpaca — order types, time-in-force (day/gtc/ioc/fok), an Alpaca-faithful order object and status vocabulary, plus /v1/clock and /v1/calendar. If you know Alpaca, you already know Boursa.
Open accounts, fund them, and trade EGX equities and funds through one REST API. Alpaca-shaped, broker-of-record, FRA-aligned.
Boursa is embedded-investing infrastructure for the Egyptian Exchange (EGX). A fintech (a tenant) integrates one REST API to give its users a full investing experience: open a brokerage account (KYC), fund it, buy and sell EGX equities and money-market funds, and see portfolio analytics — while a licensed brokerage acts as broker of record.
The API deliberately follows Alpaca's conventions wherever they fit, so the learning curve is near zero for anyone who has integrated Alpaca. Where EGX market structure or our broker-of-record model requires a difference, it is documented on the Alpaca parity page.
| Realm | Who | Auth |
|---|---|---|
Tenant API /v1/* | your backend (and your users' app) | Authorization: Bearer <api_key>; money endpoints add an HMAC signature |
Dealer console /broker/v1/* | the brokerage's dealer desk | X-Console-Key (or a console sign-in session) |
Back office /admin/* | platform operations | X-Admin-Key (or an ops session) |
Most integrations live entirely in the Tenant API. Start with Getting started.
# The sandbox runs on simulated money. Bearer auth on read endpoints:
curl https://sandbox.boursa.sh/v1/clock \
-H "Authorization: Bearer $BOURSA_API_KEY"
# → {"timestamp":"…","is_open":true,"next_open":"…","next_close":"…"}
# Place a good-till-canceled limit order (money endpoints are HMAC-signed —
# see Authentication). Whole shares, integer micros, EGX bands enforced:
curl -X POST https://sandbox.boursa.sh/v1/orders \
-H "Authorization: Bearer $BOURSA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "X-Boursa-Timestamp: $TS" -H "X-Boursa-Signature: $SIG" \
-d '{"investor_id":"inv_…","symbol":"COMI","side":"buy",
"type":"limit","qty":10,"limit_price_micros":80000000,
"time_in_force":"gtc"}'