API

REST API

The same data as plain JSON: listings, samples and data types.

Base address: https://mora.market/api/v1. Answers are JSON. Reads need no account and can be called from a browser.

Search listings

GET/listings

Private listings on Mora. For free public datasets, use the search_listings tool or the dataset search.

Parameter Type What it does
q string Words to look for in the title, type and description
type string A data type slug, from /data-types
status string raw, labeled or verified
bash
curl "https://mora.market/api/v1/listings?q=hvac&status=verified"
json
{
  "listings": [
    {
      "id": "commercial-hvac-service-calls",
      "title": "Commercial HVAC service calls",
      "type": "field-service-records",
      "status": "verified",
      "volume": "412,000 work orders",
      "years": "2016 to 2025",
      "price": "$180k",
      "license": "Non-exclusive",
      "provider": "Provider 181C",
      "url": "https://mora.market/datasets/commercial-hvac-service-calls/",
      "preview": true,
      "source": ["ServiceTitan: work orders and callbacks"],
      "schema": [{ "name": "complaint" }, { "name": "diagnosis" }]
    }
  ],
  "note": "Listings with \"preview\": true are examples, not real offers."
}
Field Meaning
preview true for an example listing shown while the first providers come on. Not an offer.
provider Always an anonymous id
size How big it is, counted by Mora: records, or lines of code, files and commits for a repository. null until Mora has received the data; volume is only what the provider says
schema What each record holds. For a real listing, written by the provider's agent
standard, coverage, parts When the dataset follows a standard: which parts it holds

Get one listing

GET/listings/{id}
bash
curl https://mora.market/api/v1/listings/commercial-hvac-service-calls

Answers 404 with { "error": "not_found" } for an id that is not live and public.

Get a sample

GET/listings/{id}/sample

The records Mora drew at random from everything the provider sent. Nobody picked them.

json
{
  "listing": "Commercial HVAC service calls",
  "preview": true,
  "records": [
    { "complaint": "3rd floor 79F, thermostat set to 72F", "diagnosis": "failed condenser fan capacitor", "callback_within_30_days": false }
  ],
  "note": "Illustrative records for a preview listing, not a real provider's data."
}

records is null when no sample has been drawn yet.

List data types

GET/data-types

The kinds of records traded and what labs ask for in each.

Create a listing

POST/listingsOAuth, provider

The same fields as the create_listing tool. See its parameters in the tools reference.

bash
curl https://mora.market/api/v1/listings \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{ "title": "Tier 2 support escalations", "recordType": "customer-support-conversations",
        "system": "Zendesk", "years": "2021 to 2026", "volume": "About 88,000 threads",
        "contents": "The customer problem, every reply, and what fixed it.",
        "owns": "yes", "personal": "no", "contracts": "yes", "visibility": "private" }'

The listing is saved for Mora to review. Nobody sees it until Mora approves it.