API Reference
Technical documentation for integrating with Qwilon APIs.
Overview
Base URL
https://api.qwilon.comAuthentication
Wallet signature + API key
Format
JSON request/response
Rate Limit
100 requests/minute
Authentication
All authenticated endpoints require two headers:
x-wallet-address: 0xYourWalletAddress x-api-key: your-api-key (for partner integrations)
API Keys
API keys are required for partner integrations. Contact us atpartners@qwilon.com to request access.
Tokenization Endpoints
/api/tokenization/applySubmit a new tokenization application.
Request Body
{
"legal_entity_name": "ABC Properties Ltd",
"contact_name": "John Doe",
"contact_email": "john@abc.com",
"contact_phone": "+234123456789",
"website": "https://abc-properties.com",
"asset_type": "real_estate",
"asset_name": "Lagos Tower",
"asset_description": "20-story commercial building...",
"estimated_value": 5000000,
"use_case": "Raise capital for renovation...",
"needs_escrow": true,
"needs_dividends": true,
"documents": [
{
"name": "title_deed.pdf",
"url": "ipfs://Qm...",
"type": "title_deed"
}
]
}Response (201 Created)
{
"success": true,
"data": {
"id": "uuid-string",
"status": "pending",
"fee": 1200,
"created_at": "2026-03-11T10:00:00Z"
}
}/api/tokenization/[id]Get details of a specific application.
Response (200 OK)
{
"id": "uuid-string",
"user_address": "0x...",
"status": "approved",
"legal_entity_name": "ABC Properties Ltd",
"asset_type": "real_estate",
"asset_name": "Lagos Tower",
"estimated_value": 5000000,
"fee": 1200,
"documents": [...],
"admin_notes": "Approved for deployment",
"token_address": "0x...",
"created_at": "2026-03-11T10:00:00Z",
"updated_at": "2026-03-12T14:30:00Z"
}/api/tokenization/[id]/resubmitResubmit a rejected application with updated information.
Only applications with status "rejected" can be resubmitted.
Projects Endpoints
/api/projects/listGet list of all deployed projects.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| asset_type | string | Filter by asset type |
| status | string | funding, funded, closed |
| limit | number | Results per page (default: 20) |
| offset | number | Pagination offset |
Response (200 OK)
{
"success": true,
"data": {
"projects": [
{
"id": "uuid",
"name": "Lagos Tower",
"asset_type": "real_estate",
"token_address": "0x...",
"funding_goal": 500000,
"funding_raised": 250000,
"token_price": 1.00,
"investors_count": 150,
"status": "funding"
}
],
"total": 45,
"limit": 20,
"offset": 0
}
}/api/projects/[id]Get detailed information about a specific project.
KYC Endpoints
/api/kyc/status/[address]Get KYC status and limits for a wallet address.
Response (200 OK)
{
"success": true,
"data": {
"address": "0x...",
"tier": "silver",
"status": "verified",
"investment_limit": 10000,
"total_invested": 2500,
"remaining_limit": 7500,
"verified_at": "2026-03-01T10:00:00Z"
}
}/api/kyc/initiateStart KYC verification process for a tier upgrade.
Request Body
{
"tier": "silver",
"email": "user@example.com"
}IPFS Endpoints
/api/ipfs/uploadUpload a file to IPFS.
Request
Content-Type: multipart/form-data
- • Field name:
file - • Max size: 50MB
- • Allowed types: PDF, PNG, JPG, JPEG
Response (200 OK)
{
"success": true,
"data": {
"ipfsHash": "QmXyz...",
"ipfsUrl": "ipfs://QmXyz...",
"gatewayUrl": "https://gateway.pinata.cloud/ipfs/QmXyz...",
"size": 1024000,
"type": "application/pdf"
}
}Error Codes
| Code | Message | Description |
|---|---|---|
| 400 | Bad Request | Invalid request body or parameters |
| 401 | Unauthorized | Missing or invalid authentication |
| 403 | Forbidden | Insufficient permissions (e.g., KYC tier) |
| 404 | Not Found | Resource does not exist |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Error | Server error - contact support |
Error Response Format
{
"success": false,
"error": {
"code": 400,
"message": "Invalid asset_type",
"details": "asset_type must be one of: real_estate, commodities, equity, art"
}
}Rate Limits
| Tier | Limit | Window |
|---|---|---|
| Standard | 100 requests | 1 minute |
| Partner | 500 requests | 1 minute |
| Enterprise | Custom | Contact us |
Rate limit headers are included in all responses:
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1709971200
API Support
Need help with integration? Our developer team is here to assist.
Discord
https://discord.gg/qwilon
api@qwilon.com
Partners
partners@qwilon.com