Docs
Technical documentation, guidelines, and protocol specifications for Medialane.
Developer Documentation
Build applications on top of Medialane using the REST API or the official TypeScript SDK. All endpoints are public and read-only unless authenticated with an API key.
Base URL
https://medialane-backend-production.up.railway.app/v1
All API requests are served over HTTPS. HTTP requests are not supported.
Authentication
Public endpoints (collections, tokens, orders, activities) require no authentication. To access rate-limited or write endpoints, include your API key in the request header:
x-api-key: ml_live_your_api_key_here
API keys are issued per tenant. Contact us at dev@medialane.io to request a key for your integration.
TypeScript SDK
The official @medialane/sdk package provides a typed client for all public API endpoints.
npm install @medialane/sdk
import { MedialaneClient } from "@medialane/sdk";
const client = new MedialaneClient({
baseUrl: "https://medialane-backend-production.up.railway.app/v1",
apiKey: "ml_live_your_api_key_here",
});
// Fetch collections
const { data } = await client.getCollections({ limit: 20 });
// Fetch tokens owned by an address
const tokens = await client.getTokensByOwner("0x...");Key Endpoints
Pagination
List endpoints support page and limit query parameters. Responses include a meta object:
{
"data": [...],
"meta": {
"page": 1,
"limit": 20,
"total": 142
}
}Rate Limits
Public endpoints are rate-limited to 60 requests per minute per IP address. Authenticated API keys receive higher limits based on the plan. Rate limit headers are included in every response:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58 X-RateLimit-Reset: 1710000000
IPFS & Media
Token images and metadata are stored on IPFS. URLs in API responses use theipfs://scheme. Convert to HTTP using any public IPFS gateway:
// ipfs://bafybeifoo... → https://gateway.pinata.cloud/ipfs/bafybeifoo...
const httpUrl = ipfsUri.replace("ipfs://", "https://gateway.pinata.cloud/ipfs/");