Qwilon

API Reference

Technical documentation for integrating with Qwilon APIs.

Overview

Base URL

https://api.qwilon.com

Authentication

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

POST/api/tokenization/apply

Submit 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"
  }
}
GET/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"
}
PUT/api/tokenization/[id]/resubmit

Resubmit a rejected application with updated information.

Only applications with status "rejected" can be resubmitted.

Projects Endpoints

GET/api/projects/list

Get list of all deployed projects.

Query Parameters

ParameterTypeDescription
asset_typestringFilter by asset type
statusstringfunding, funded, closed
limitnumberResults per page (default: 20)
offsetnumberPagination 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
  }
}
GET/api/projects/[id]

Get detailed information about a specific project.

KYC Endpoints

GET/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"
  }
}
POST/api/kyc/initiate

Start KYC verification process for a tier upgrade.

Request Body

{
  "tier": "silver",
  "email": "user@example.com"
}

IPFS Endpoints

POST/api/ipfs/upload

Upload 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

CodeMessageDescription
400Bad RequestInvalid request body or parameters
401UnauthorizedMissing or invalid authentication
403ForbiddenInsufficient permissions (e.g., KYC tier)
404Not FoundResource does not exist
429Too Many RequestsRate limit exceeded
500Internal ErrorServer 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

TierLimitWindow
Standard100 requests1 minute
Partner500 requests1 minute
EnterpriseCustomContact 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

Email

api@qwilon.com

Partners

partners@qwilon.com