Medialane API — Getting Started
One REST API for all Starknet IP data. Get a key, make a request, and integrate in minutes.
Quick Start
- 1
Get your API key
Connect your Starknet wallet at /account and create an API key from the portal dashboard. You need a minimum of 500 MDLN in your wallet to provision a key.
- 2
Make your first request
bashcurl https://medialane-backend-production.up.railway.app/v1/orders \ -H "x-api-key: ml_live_YOUR_KEY"
- 3
Integrate in your app
Use the @medialane/sdk for a typed client, or call the REST API directly from any language.
Platform Surfaces
Medialane has three distinct surfaces. The portal you're on is for developers. The other two are for end users and autonomous agents.
portal.medialane.io
Developer Portal
API key management, usage dashboard, webhooks, and this documentation. Built for developers integrating the REST API.
www.medialane.io
Creator Launchpad
Consumer-grade IP marketplace with invisible wallet (ChipiPay). Mint, list, remix, and comment without managing a seed phrase.
dapp.medialane.io
Permissionless dApp
Fully on-chain reads via starknet.js — no backend dependency. Ideal for Starknet wallet holders and autonomous AI agents.
Authentication
All requests require an API key. Pass it in the x-api-key header:
curl https://medialane-backend-production.up.railway.app/v1/orders \ -H "x-api-key: ml_live_YOUR_KEY" # Bearer token also accepted: # -H "Authorization: Bearer ml_live_YOUR_KEY"
API keys are prefixed ml_live_. Keep them secret — treat them like passwords.
Base URL
https://medialane-backend-production.up.railway.app
All endpoints are versioned under /v1/.
Response Format
All responses are JSON. Successful list responses wrap data in a data array with pagination in meta.
Success
{
"data": [...],
"meta": { "total": 128, "page": 1, "limit": 20 }
}Error
{
"error": "Unauthorized",
"message": "Invalid or missing API key"
}Error Codes
Credits & Billing
Credits are the billing unit. Top up by depositing USDC on Starknet from your account dashboard. Credits appear within ~2 minutes. Credits never expire.
Different endpoint categories consume different credits per call:
Hold MDLN tokens for a credit multiplier — up to 2× more credits per USDC deposit. See the Integrate page for tier details.
When credits run out you receive 402 Payment Required with an X-Credits-Remaining: 0 header. Portal management calls (/v1/portal/*) never count toward the credit balance. Autonomous agents can detect the 402 and trigger a top-up automatically — see the Agent Quickstart.
Use Cases
Both Medialane consumer apps are built on the same API you're integrating:
medialane.io
Creator Launchpad
Uses Collections, Orders, Minting, Remix Licensing, and On-chain Comments APIs. Runs a ChipiPay invisible-wallet UX for end users.
dapp.medialane.io
Permissionless dApp
Uses Activities, Trade Intents, and Asset Metadata APIs with direct starknet.js reads — no backend dependency for browsing.
Common patterns
// Fetch a creator's portfolio
const assets = await client.api.getTokensByOwner({ owner: "0x05f9..." });
// List open-license assets available for remix
import { OPEN_LICENSES } from "@medialane/sdk";
const cc0 = await client.api.getTokens({ licenseType: OPEN_LICENSES });
// Stream on-chain activity
const events = await client.api.getActivities({ eventType: "TRANSFER" });
// Submit a listing intent (agent or wallet)
const intent = await client.api.createListingIntent({ tokenId, price, duration });
const sig = await account.signMessage(intent.typedData);