API Documentation
Build powerful integrations with the EuropaTech REST API. Access real estate objects, portfolios, conditional resale-flow data, and market data.
Base URL
https://api.europa-tech.orgAuthentication
All API requests require an API key passed in the X-API-Key header. Create keys in your developer dashboard.
curl -H "X-API-Key: ek_live_your_key_here" \
https://api.europa-tech.org/api/v1/objectsNote: Keys starting with ek_live_ are for production. Keep your keys secret — never expose them in client-side code.
Rate Limits
60
requests per key / min
300
requests per user / min
5
max keys per user
Rate limit info is returned in response headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
Retry-After: 30Pagination
List endpoints use cursor-based pagination. Pass the nextCursor value to fetch the next page.
{
"success": true,
"data": [...],
"pagination": {
"nextCursor": "clx8f9g2k0001...",
"hasMore": true
}
}Use ?cursor=<nextCursor>&limit=20 to paginate through results.
Endpoints
/api/auth/export-dataread:authExport all your account data (GDPR)
/api/auth/forgot-passwordwrite:authRequest a password reset email
/api/auth/loginwrite:authSign in with email and password
/api/auth/logoutwrite:authSign out and revoke the current session
/api/auth/meread:authGet the current user profile
/api/auth/notification-preferencesread:authGet notification preferences
/api/auth/notification-preferenceswrite:authUpdate notification preferences
/api/auth/passwordwrite:authChange password
/api/auth/profilewrite:authUpdate profile details
/api/auth/refreshwrite:authRefresh the access token
/api/auth/registerwrite:authCreate a new account
/api/auth/resend-verificationwrite:authResend the verification email
/api/auth/reset-passwordwrite:authSet a new password with a reset token
/api/auth/sessionswrite:authSign out of all other sessions
/api/auth/sessionsread:authList active sessions
/api/auth/verify-emailwrite:authConfirm an email address
/api/exchangewrite:exchangeExchange currencies on your balance
/api/income/accrualsread:incomeList income accruals
/api/income/confirm-otpwrite:incomeConfirm a withdrawal with a one-time code
/api/income/payoutsread:incomeList payout requests
/api/income/payoutswrite:incomeRequest a bank payout
/api/income/payouts/cryptowrite:incomeRequest a crypto payout
/api/income/payouts/scheduleread:incomeGet the payout schedule
/api/income/reports/{objectId}read:incomeGet the income report for a property
/api/income/request-otpwrite:incomeRequest a one-time code for a withdrawal
/api/kyc/sessionwrite:kycStart an identity verification session
/api/kyc/statusread:kycGet identity verification status
/api/p2p/escrowsread:p2p-marketplaceList your P2P escrows
/api/p2p/escrows/{id}read:p2p-marketplaceGet P2P escrow details
/api/p2p/limitsread:p2p-marketplaceGet your P2P trading limits
/api/p2p/my-ordersread:p2p-marketplaceList your P2P orders
/api/p2p/orderbook/{objectId}read:p2p-marketplaceGet the order book for a property
/api/p2p/ordersread:p2p-marketplaceList active P2P orders
/api/p2p/orderswrite:p2p-marketplaceCreate a P2P order
/api/p2p/orders/{id}/cancelwrite:p2p-marketplaceCancel a P2P order
/api/p2p/orders/{id}/executewrite:p2p-marketplaceExecute a P2P order
/api/p2p/tradesread:p2p-marketplaceList P2P trades
/api/paymentsread:paymentsList payments
/api/payments/{id}read:paymentsGet payment details
/api/payments/{id}/cancel-cooling-offwrite:paymentsCancel a payment within the cooling-off period
/api/payments/buy-from-balancewrite:paymentsBuy shares with your balance
/api/payments/nowpayments/invoicewrite:paymentsCreate a payment invoice
/api/payments/stripe/checkoutwrite:paymentsCreate a card payment checkout
/api/portfolioread:portfolioGet your portfolio
/api/portfolio/buywrite:portfolioBuy property shares
/api/portfolio/buyback-quotewrite:portfolioGet a buyback quote
/api/portfolio/certificate/{objectId}read:portfolioDownload the ownership certificate for a property
/api/portfolio/sell-to-platformwrite:portfolioSell shares back to the platform
/api/portfolio/transactionsread:portfolioList portfolio transactions
/api/portfolio/transactions/exportread:portfolioExport portfolio transactions
/api/v1/compliance/statusread:public-api-v1-—-institutionalGet compliance status
/api/v1/fundread:public-api-v1-—-institutionalGet fund overview
/api/v1/investwrite:public-api-v1-—-institutionalInvest in one or more properties
/api/v1/market/ratesread:public-api-v1-—-marketGet current market rates
/api/v1/objectsread:public-api-v1-—-objectsList active properties
/api/v1/objects/{id}read:public-api-v1-—-objectsGet property details by ID
/api/v1/p2pread:public-api-v1-—-p2pList active P2P orders
/api/v1/p2pwrite:public-api-v1-—-p2pCreate a P2P order
/api/v1/p2p/{id}write:public-api-v1-—-p2pCancel a P2P order
/api/v1/portfolioread:public-api-v1-—-portfolioGet your portfolio
/api/v1/portfolio/transactionsread:public-api-v1-—-portfolioList your transactions
/api/v2/partner/commissionsread:partner-api-v2List partner commissions
/api/v2/partner/conversionsread:partner-api-v2List referral conversions
/api/v2/partner/objectsread:partner-api-v2List properties available to partners
/api/v2/partner/payoutswrite:partner-api-v2Request a partner payout
/api/v2/partner/statsread:partner-api-v2Get partner statistics
Quick Start
Get up and running in minutes. Here are examples in popular languages:
cURL
curl -s -H "X-API-Key: ek_live_your_key_here" \
https://api.europa-tech.org/api/v1/objects | jq .JavaScript / TypeScript
const res = await fetch('https://api.europa-tech.org/api/v1/objects?limit=10', {
headers: { 'X-API-Key': 'ek_live_your_key_here' },
})
const objects = await res.json()
for (const obj of objects.data) {
console.log(obj.name, obj.sharePrice)
}Python
import requests
res = requests.get(
"https://api.europa-tech.org/api/v1/objects",
headers={"X-API-Key": "ek_live_your_key_here"},
params={"limit": 10},
)
for obj in res.json()["data"]:
print(obj["name"], obj["sharePrice"])Error Codes
The API uses standard HTTP status codes. Error responses include a message and request ID.
400Bad Request — invalid parameters or missing required fields.
401Unauthorized — missing or invalid API key.
403Forbidden — insufficient permissions or scope.
404Not Found — the requested resource does not exist.
429Too Many Requests — rate limit exceeded. Check Retry-After header.
500Internal Server Error — unexpected server failure.
{
"success": false,
"message": "Invalid API key",
"requestId": "req_abc123..."
}Webhooks
Receive notifications for enabled account and documentation events. Webhook payloads are signed with HMAC-SHA256.
import { verifyWebhook } from '@europatech/sdk/webhooks'
const isValid = verifyWebhook(payload, signature, secret)
// HMAC-SHA256 signature verificationSDKs
JavaScript / TypeScript
npm install @europatech/sdkNode.js 18+, ESM & CJS, zero runtime dependencies, auto-pagination, typed errors.
Python
pip install europatechPython 3.9+, httpx-based, sync & async, auto-pagination, typed errors.
Ready to Build?
Create your API key and start integrating EuropaTech data into your applications.
Get API Key