GOOD DATA.
FROM THE START.
Bring inventory identities and completed-sale evidence into one collection record.
Send an authenticated batch
POST /api/v1/ingress accepts up to 100 item and comparable-sale records in a single transaction. An ingress key is required. Keys are issued privately by the project operator.
Authorization: Bearer YOUR_INGRESS_KEY
Content-Type: application/json
Idempotency-Key: source-batch-0001{
"source": "manual-research",
"records": [{
"kind": "item",
"external_id": "collection-001-card-001",
"title": "Exact card name, set, number and variant",
"category": "pokemon",
"condition": "Unverified",
"acquisition_cost_cents": null,
"location": ""
}]
}Examples describe the format only. They are not market or inventory records.
Predictable retries
Repeating the same source, key and payload returns the original receipt without writing twice. Reusing the key for changed data returns 409. A new key can update an existing source/external ID. A failed record rolls back the whole batch.
Comparable sales
A comp record must reference an item using item_external_id within the same source. Include sold_on, venue, amount_cents, currency, condition and an HTTPS evidence_url. Amounts are integer minor units, not floating-point dollars. Currencies are stored, never automatically converted.
Read and review
Operator keys can read paginated /api/v1/enquiries, /api/v1/inventory, /api/v1/comps and /api/v1/events. Ingress keys cannot read private records. Use limit (1–100) and offset. Operators can PATCH an enquiry’s status to new, reviewing, contacted or closed.
Private photographs and collection details
POST /api/v1/enquiries now accepts optional details (outcome, locality, era, condition, notable, graded, hobby, participation) and up to five uploads, each with name and data_base64. JPEG, PNG and WebP only; 3 MiB and 20 megapixels per photograph. The JSON envelope is limited to 22 MiB. All other writes remain limited to 128 KiB.
Enquiry reads include upload IDs. Only operator keys can retrieve GET /api/v1/enquiries/{id}/photos/{photo_id}. Images are normalised to WebP, at most 1600 pixels per edge, with embedded metadata removed. They are not published.
participation is optional: player, collector, hybrid or fandom. hobby is an optional recognised hobby ID (including the first eight: pokemon, mtg, one-piece, warhammer, sports-cards, lego, retro-gaming, gunpla). These are self-reported preferences, not inferred from the item category. No marketing subscription is created.
Publish deliberately
Imported inventory stays private. An operator can use the workspace or PUT /api/v1/inventory/{id}/listing to create a separate catalogue record. It includes a unique slug, title, category, description, condition, positive AUD price in cents, photo URLs and publication status: draft, available or sold. Published listings require photographs of the actual item. Optional fields record franchise, era, grading, certification, provenance and Rare Room selection.
Only available listings appear in shop results. Sold item pages remain accessible; drafts return 404 publicly. Ingress keys cannot publish. Public records exclude acquisition costs and private intake data. A listing is an enquiry-led offer to discuss an item; there is no payment endpoint.
Response codes
201 Created
200 Replayed or read
401 Access key required
409 Retry key conflict
413 Request too large
422 Invalid record
429 Rate limit