Build on the IPTO Data Marketplace¶
A REST API for uploading, searching, and monetizing private datasets. Designed for AI agents, developers, and data teams.
Quick Links¶
Getting Started¶
Create an account, upload your first dataset, and run your first search in under five minutes.
API Reference¶
Complete endpoint documentation with request and response schemas for every resource.
Key Features¶
| Feature | Description |
|---|---|
| Multi-tenant isolation | Every tenant's data is logically isolated. API keys, datasets, and billing are scoped to your tenant. |
| Presigned uploads | Upload files of any size directly to cloud storage using presigned URLs. No data passes through the API server. |
| Hybrid search | Combine lexical (BM25) and dense vector retrieval in a single query. Choose lexical, dense, hybrid, or let the system decide with auto. |
| Metered billing | Pay only for what you use. Retrieval, citation, and download events are metered and visible in real time. |
| API key management | Create scoped API keys for agents and automation. Restrict keys to specific datasets or grant access to all available datasets. |
Quick Authentication Example¶
After signing up, authenticate your requests with the session token you receive.
# Sign up and authenticate
ipto login --email [email protected] --password your_password
# Sign up and receive a session token
curl -X POST https://api.ipto.ai/v1/auth/signup \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "your-secure-password",
"display_name": "Jane Developer",
"tenant_name": "Acme Corp"
}'
# Use the token in subsequent requests
curl https://api.ipto.ai/v1/me \
-H "Authorization: Bearer {session_token}"
import requests
# Sign up and receive a session token
resp = requests.post(
"https://api.ipto.ai/v1/auth/signup",
json={
"email": "[email protected]",
"password": "your-secure-password",
"display_name": "Jane Developer",
"tenant_name": "Acme Corp",
},
)
token = resp.json()["session_token"]
# Use the token in subsequent requests
me = requests.get(
"https://api.ipto.ai/v1/me",
headers={"Authorization": f"Bearer {token}"},
)
print(me.json())
// Sign up and receive a session token
const signupRes = await fetch(
"https://api.ipto.ai/v1/auth/signup",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: "[email protected]",
password: "your-secure-password",
display_name: "Jane Developer",
tenant_name: "Acme Corp",
}),
}
);
const { session_token } = await signupRes.json();
// Use the token in subsequent requests
const meRes = await fetch("https://api.ipto.ai/v1/me", {
headers: { Authorization: `Bearer ${session_token}` },
});
console.log(await meRes.json());