Africa Token Sale is Live! — Early access allocations for tokenized African real-world assets. Limited slots available.
Request Early Access Back to Home
REST API v1

Africore
API Reference.

Base URL: api.africore.io/v1 Updated April 2026
Request API Access Full Docs →
Introduction
Getting Started

The Africore REST API provides programmatic access to the Africore tokenization protocol — including asset listings, token issuance, cross-chain bridge operations, oracle price feeds, node data, and webhooks.

Base URL:

https://api.africore.io/v1

Authentication: All requests require a bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

All responses are JSON. Timestamps are ISO 8601 UTC. Rate limits: 100 req/min for standard keys; 1,000 req/min for institutional keys.

🔒
Closed Beta: The Africore API is in closed beta. Request access at africore.io/request-access.

Example request:

curl -X GET https://api.africore.io/v1/assets \
  -H "Authorization: Bearer afr_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json"
Section 1
Authentication

API keys are issued per approved account through the Africore developer portal. Keys are prefixed afr_live_ for mainnet and afr_test_ for testnet. Two permission scopes are available: read-only and read-write.

Key TierScopeAccess Level
Standardread-onlyPublic asset data, oracle prices, node listings
Developerread-writeTestnet operations — tokenization, bridge, webhooks
Institutionalread-writeMainnet + private asset data, full tokenization API
Section 2
Assets

Retrieve tokenized assets from the Africore protocol registry. Public assets are accessible with a standard read-only key.

GET /assets List all public tokenized assets
GET /assets/{asset_id} Fetch a single asset by ID
GET /assets/{asset_id}/history Valuation history for an asset

Query Parameters — GET /assets

ParameterTypeRequiredDescription
limit integer Optional Number of results to return (default: 20, max: 100)
offset integer Optional Pagination offset (default: 0)
jurisdiction string Optional Filter by country code — ISO 3166-1 alpha-2 (e.g. KE, ZA)
category enum Optional real-estate | agriculture | infrastructure | solar | minerals

Example Response

[
  {
    "asset_id": "afr_asset_ke_0041",
    "name": "Nairobi Farmland Portfolio — Block 7",
    "jurisdiction": "KE",
    "category": "agriculture",
    "valuation_usd": 2400000,
    "yield_rate_pct": 8.4,
    "compliance_status": "verified",
    "token_address": "0x3fA8B653F9aB942e0b28DcA4..."
  }
]
Section 3
Tokenization

The tokenization API is available to approved institutional issuers only. Submit real-world assets for on-chain tokenization and track job status through the compliance pipeline.

POST /tokenize Submit an asset for tokenization
GET /tokenize/{job_id} Check tokenization job status

Request Body — POST /tokenize

ParameterTypeRequiredDescription
asset_namerequired string Full legal name of the asset being tokenized
jurisdictionrequired string ISO 3166-1 alpha-2 country code of asset location
valuation_usdrequired number Current appraised value of the asset in USD
asset_categoryrequired enum real-estate | agriculture | infrastructure | solar | minerals
legal_doc_urlrequired string Secure URL to legal title documentation (must be HTTPS)
compliance_refrequired string Reference number from approved Africore compliance partner

Example Response

{
  "job_id": "tok_job_20260410_0087",
  "status": "pending_review",
  "estimated_completion": "2026-04-12T14:00:00Z",
  "assigned_compliance_officer": "co_nairobi_003"
}
Section 4
Bridge

The Africore Bridge enables cross-chain transfer of tokenized assets between Africore Chain and major EVM networks. Permissioned bridging preserves KYC/AML compliance across chains. Supported chains: africore | ethereum | polygon | bnb | arbitrum

POST /bridge/transfer Initiate a cross-chain asset transfer
GET /bridge/transfer/{tx_id} Get transfer status by transaction ID

Request Body — POST /bridge/transfer

ParameterTypeRequiredDescription
asset_idrequired string Africore asset identifier to transfer
amountrequired number Token amount to bridge (in smallest token unit)
source_chainrequired enum Origin chain: africore | ethereum | polygon | bnb | arbitrum
destination_chainrequired enum Destination chain (same enum as source_chain)
recipient_addressrequired string Destination wallet address (must be KYC-verified on Africore)
Section 5
Oracle

The Africore Oracle Network delivers real-time and historical price data for tokenized assets. Prices are aggregated from multiple on-the-ground data sources, signed on-chain for immutability, and surfaced via these endpoints.

GET /oracle/price/{asset_id} Latest price feed for an asset
GET /oracle/price/{asset_id}/history Historical price series for an asset

Example Response — GET /oracle/price/{asset_id}

{
  "asset_id": "afr_asset_ke_0041",
  "price_usd": 2418500,
  "last_updated": "2026-04-10T08:30:00Z",
  "source_count": 7,
  "confidence_score": 0.94
}

confidence_score ranges from 0.0 to 1.0, reflecting oracle consensus across data sources. Scores below 0.6 are flagged for manual review.

Section 6
Nodes

Query active infrastructure nodes on the Africore network. Node operators earn AFRI and USDC rewards for running oracle infrastructure and providing network uptime.

GET /nodes List all active nodes on the network
GET /nodes/{node_id} Node details and earnings summary

Example Response — GET /nodes/{node_id}

{
  "node_id": "node_ng_0014",
  "tier": "genesis",
  "owner_address": "0xaBc12...F9e4",
  "uptime_pct": 99.7,
  "earnings_afri": 1240.5,
  "earnings_usdc": 310.12,
  "last_reward_at": "2026-04-09T00:00:00Z"
}
Section 7
Webhooks

Register a public HTTPS endpoint to receive real-time protocol events. Africore will POST a signed JSON payload to your endpoint whenever a subscribed event occurs.

POST /webhooks Register a webhook endpoint URL

Available Events

EventDescription
asset.tokenizedA new asset has been successfully tokenized and listed on-chain
asset.valuation_updatedOracle has updated the valuation for a tracked asset
yield.distributedYield distribution has been executed for a tokenized asset
bridge.transfer_completeA cross-chain bridge transfer has reached finality
node.reward_issuedA node operator reward has been distributed

Payload Envelope

{
  "event": "yield.distributed",
  "timestamp": "2026-04-10T12:00:00Z",
  "data": { ... }
}

All webhook payloads include a X-Africore-Signature header containing an HMAC-SHA256 signature of the payload body, using your webhook secret as the key. Verify this signature before processing events.

Section 8
Errors

All error responses follow a consistent envelope format. Inspect code for machine-readable error classification and message for a human-readable description.

Error Envelope

{
  "code": "ERR_VALIDATION",
  "message": "Required field 'jurisdiction' is missing.",
  "details": { "field": "jurisdiction" }
}

HTTP Status Codes

StatusCodeDescription
400 ERR_VALIDATION Request body or query parameters failed validation
401 ERR_AUTH_INVALID API key missing, expired, or invalid
403 ERR_FORBIDDEN API key lacks required scope for this operation
404 ERR_NOT_FOUND Requested resource does not exist
422 ERR_COMPLIANCE_FAIL Request was rejected due to a compliance or KYC/AML failure
429 ERR_RATE_LIMIT Rate limit exceeded — back off and retry after the indicated window
500 ERR_INTERNAL Unexpected server error — contact support if this persists

Ready to build
on Africore?