InstaMapp API · v1

Build on your collection data

The InstaMapp REST API lets Business-tier teams read and manage their inventory, collections, listings, and sales programmatically. Predictable resource-oriented URLs, JSON everywhere, API-key authentication, and scoped access.

Base URL /api/public/v1View OpenAPI 3.1 spec →

Authentication

Authenticate every request with an API key in the Authorization header as a bearer token. Create and manage keys in your Business team settings — the full key is shown once, so store it somewhere safe.

curl
curl /api/public/v1/items \
  -H "Authorization: Bearer imk_live_your_key_here"

Keys are scoped — each key only works for the scopes you grant it (e.g. items:read). Keep keys server-side; never expose them in a browser or mobile app.

Quickstart

  1. Open your Business team settings → API keys.
  2. Create a key, choose its scopes, and copy the secret (shown once).
  3. Call the API with the key in the Authorization header.
server-side js
const res = await fetch("/api/public/v1/items?per_page=10", {
  headers: { Authorization: `Bearer ${process.env.INSTAMAPP_API_KEY}` },
});
const { data, pagination } = await res.json();
console.log(data.length, "items; more?", pagination.has_more);

Run these examples from a server or trusted backend job. Do not ship API keys in browser code.

python
import os, requests

r = requests.get(
    "/api/public/v1/items",
    headers={"Authorization": f"Bearer {os.environ['INSTAMAPP_API_KEY']}"},
    params={"per_page": 10},
)
r.raise_for_status()
print(r.json()["data"])

Rate limits

Requests are limited per API key. When you exceed the limit you get a 429 response; check the standard RateLimit-* response headers to pace your requests. Every response also includes an X-Request-Id for support.

Errors

Errors use a consistent envelope and conventional HTTP status codes.

json
{
  "error": {
    "type": "not_found",
    "message": "No item with that id."
  }
}
StatustypeMeaning
400invalid_requestMalformed request or bad parameter.
401Missing or invalid API key.
403The key lacks the required scope.
403limit_reachedYour plan's item limit is reached (on create).
404not_foundResource not found.
429Rate limit exceeded.

Pagination

List endpoints accept page (1-based) and per_page (1–100, default 20), and return a pagination object with has_more.

json
{
  "object": "list",
  "data": [ /* … */ ],
  "pagination": { "page": 1, "per_page": 20, "has_more": true }
}

Items

GET/itemsscope items:read

List items in your team, newest first.

Parameters

  • pagePage number (1-based).
  • per_pageResults per page (1–100, default 20).
  • statusFilter: keep, sell, trade, sold, archived.
curl
curl "/api/public/v1/items?status=sell&per_page=20" \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY"
GET/items/{id}scope items:read

Retrieve a single item by id.

curl
curl /api/public/v1/items/itm_123 \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY"
POST/itemsscope items:write

Create an item in one of your collections. Counts against your plan's item limit.

curl
curl -X POST /api/public/v1/items \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "collection_id": "00000000-0000-0000-0000-000000000000",
    "name": "Custom Otto",
    "status": "keep",
    "condition": "loose_mint",
    "estimated_value": 24.99
  }'
PATCH/items/{id}scope items:write

Partially update an item — only the fields you send change.

curl
curl -X PATCH /api/public/v1/items/itm_123 \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "status": "sell", "estimated_value": 30 }'

Collections

GET/collectionsscope collections:read

List your team's collections.

Parameters

  • pagePage number (1-based).
  • per_pageResults per page (1–100, default 20).
curl
curl /api/public/v1/collections \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY"

Marketplace

GET/marketplace/listingsscope marketplace:read

List your items currently for sale or trade.

Parameters

  • pagePage number (1-based).
  • per_pageResults per page (1–100, default 20).
curl
curl /api/public/v1/marketplace/listings \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY"

Sales

GET/sales/summaryscope analytics:read

Aggregate earnings: gross, fees, net payout, refunds, disputes.

curl
curl /api/public/v1/sales/summary \
  -H "Authorization: Bearer $INSTAMAPP_API_KEY"