MooreMetrics Dive API Documentation
Base URL: https://www.mooremetrics.com/wp-json/mooremetrics/v1
All authenticated endpoints require an X-API-Key header. Get a free key here or open the account dashboard to review plan, quota, renewal, and recent activity.
Authentication
Pass your API key in the X-API-Key header with every authenticated request.
curl -H "X-API-Key: mm_live_your_key_here" \ "https://www.mooremetrics.com/wp-json/mooremetrics/v1/domains"
Rate Limits
Every authenticated response includes rate-limit headers:
X-RateLimit-Limit | Your monthly request limit |
X-RateLimit-Remaining | Requests remaining this month |
X-RateLimit-Reset | Date when your counter resets |
X-RateLimit-Plan | Your current plan (free, basic, pro) |
Exceeding limits returns 429 Too Many Requests.
Location Filtering
chowdive and collegedive expose item coordinates and support radius-based filtering. Wherever a ChowDive restaurant or CollegeDive college is returned, the item includes latitude and longitude. ChowDive items also include city and state when available.
For /recommend, /recommend-by-preferences, and /domains/{domain}/items, add latitude, longitude, and radius_miles to restrict results to items within that radius. If radius_miles is omitted when coordinates are supplied, it defaults to 50. Filtered responses include location_filter, and returned items include distance_miles.
curl -X POST "https://www.mooremetrics.com/wp-json/mooremetrics/v1/recommend" \ -H "X-API-Key: mm_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "domain": "chowdive", "items": ["Shake Shack"], "latitude": 40.7128, "longitude": -74.0060, "radius_miles": 25, "limit": 10 }'
POST endpoints also accept a nested object: "location": {"latitude": 40.7128, "longitude": -74.0060, "radius_miles": 25}.
Endpoints
GET /domains
List all available Dive domains. No authentication required.
curl "https://www.mooremetrics.com/wp-json/mooremetrics/v1/domains"
Example response
{ "domains": [ { "slug": "showdive", "label": "ShowDive", "entity_type": "TV Show", "characteristics": 13, "supports_location": false }, { "slug": "chowdive", "label": "ChowDive", "entity_type": "Restaurant", "characteristics": 12, "supports_location": true }, ... ]} GET /domains/{domain}/items
Browse items and their characteristic scores. No authentication required. ChowDive and CollegeDive items include latitude/longitude; those domains can also be filtered by radius.
| Parameter | Type | Description |
|---|---|---|
domain | path | Dive domain slug (e.g., showdive) |
search | query | Filter items by name (optional) |
limit | query | Max results, up to 500 (default: 50) |
offset | query | Pagination offset (default: 0) |
latitude | query | Latitude for radius filtering; ChowDive and CollegeDive only |
longitude | query | Longitude for radius filtering; ChowDive and CollegeDive only |
radius_miles | query | Radius in miles; defaults to 50 when coordinates are supplied |
curl "https://www.mooremetrics.com/wp-json/mooremetrics/v1/domains/showdive/items?search=break&limit=5"
curl "https://www.mooremetrics.com/wp-json/mooremetrics/v1/domains/chowdive/items?latitude=40.7128&longitude=-74.0060&radius_miles=10&limit=5"
GET /domains/{domain}/characteristics
List the characteristic dimensions for a domain. No authentication required. Useful for building dynamic slider UIs. The response also reports whether location filtering is supported.
curl "https://www.mooremetrics.com/wp-json/mooremetrics/v1/domains/fragrancedive/characteristics"
POST /recommend AUTH
Get recommendations based on items the user likes. Accepts up to 20 input items with fuzzy matching.
| Field | Type | Description |
|---|---|---|
domain | string | Dive domain slug |
items | array | Array of item names (fuzzy matched) |
limit | integer | Max results, up to 100 (default: 20) |
include_characteristics | boolean | Include characteristic scores in results (default: false) |
latitude | number | Optional location filter latitude; ChowDive and CollegeDive only |
longitude | number | Optional location filter longitude; ChowDive and CollegeDive only |
radius_miles | number | Optional radius in miles; defaults to 50 when coordinates are supplied |
curl -X POST "https://www.mooremetrics.com/wp-json/mooremetrics/v1/recommend" \ -H "X-API-Key: mm_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "domain": "showdive", "items": ["Breaking Bad", "The Wire", "Better Call Saul"], "limit": 10, "include_characteristics": true }'
Location-filtered ChowDive example:
curl -X POST "https://www.mooremetrics.com/wp-json/mooremetrics/v1/recommend" \ -H "X-API-Key: mm_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "domain": "chowdive", "items": ["Shake Shack"], "latitude": 40.7128, "longitude": -74.0060, "radius_miles": 25, "limit": 10 }'
Example response
{ "domain": "showdive", "matched_inputs": [ { "input": "Breaking Bad", "matched_to": "Breaking Bad", "id": "Breaking.Bad" } ], "unmatched_inputs": [], "count": 10, "recommendations": [ { "rank": 1, "id": "Ozark", "name": "Ozark", "score": 0.945321, "characteristics": { "sci_fi_elements": -0.8012, "comedy": -0.4521, "crime_focus": 1.8934, ... } }, ... ]} For location-filtered ChowDive/CollegeDive responses, recommendations include latitude, longitude, and distance_miles.
POST /recommend-by-preferences AUTH
Get recommendations by specifying desired characteristic values (like the slider interface). Only include the characteristics you care about — omitted ones are ignored.
| Field | Type | Description |
|---|---|---|
domain | string | Dive domain slug |
preferences | object | Key-value pairs of characteristic names and desired values (-4 to 4) |
limit | integer | Max results (default: 20) |
include_characteristics | boolean | Include full characteristic scores (default: false) |
latitude | number | Optional location filter latitude; ChowDive and CollegeDive only |
longitude | number | Optional location filter longitude; ChowDive and CollegeDive only |
radius_miles | number | Optional radius in miles; defaults to 50 when coordinates are supplied |
curl -X POST "https://www.mooremetrics.com/wp-json/mooremetrics/v1/recommend-by-preferences" \ -H "X-API-Key: mm_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "domain": "fragrancedive", "preferences": { "mainstream": -2.0, "intense_powerful": 3.0, "expensive": 2.5 }, "limit": 10 }'
CollegeDive preferences near Boston example:
curl -X POST "https://www.mooremetrics.com/wp-json/mooremetrics/v1/recommend-by-preferences" \ -H "X-API-Key: mm_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "domain": "collegedive", "preferences": { "Prestige": 2.0, "Urbanicity": 1.5 }, "latitude": 42.3601, "longitude": -71.0589, "radius_miles": 100, "limit": 10 }'
GET /correlation AUTH BASIC+
Get the pairwise similarity score between two items. Requires Basic or Pro plan. Values are normalized to a 0–1 scale.
| Parameter | Type | Description |
|---|---|---|
domain | query | Dive domain slug |
item1 | query | First item name (fuzzy matched) |
item2 | query | Second item name (fuzzy matched) |
curl -H "X-API-Key: mm_live_your_key_here" \ "https://www.mooremetrics.com/wp-json/mooremetrics/v1/correlation?domain=moviedive&item1=The+Godfather&item2=Goodfellas"
Example response
{ "domain": "moviedive", "item1": { "id": "The.Godfather", "name": "The Godfather" }, "item2": { "id": "Goodfellas", "name": "Goodfellas" }, "correlation": 0.674200} GET /usage AUTH
Check your current usage, remaining quota, and per-domain breakdown for the current billing period.
curl -H "X-API-Key: mm_live_your_key_here" \ "https://www.mooremetrics.com/wp-json/mooremetrics/v1/usage"
POST /register
Programmatically register for a free API key. One key per email address.
curl -X POST "https://www.mooremetrics.com/wp-json/mooremetrics/v1/register" \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com"}'
Plans
| Plan | Requests/Mo | Rate Limit | Correlation Endpoint | Price |
|---|---|---|---|---|
| Free | 100 | 10/min | — | Free |
| Basic | 5,000 | 30/min | ✓ | $5/mo |
| Pro | 100,000 | 60/min | ✓ | $50/mo |
Available Domains
| Slug | Name | Entity Type | Characteristics | Location |
|---|---|---|---|---|
showdive | ShowDive | TV Show | 13 | — |
moviedive | MovieDive | Movie | 12 | — |
poddive | PodDive | Podcast | 14 | — |
gamedive | GameDive | Video Game | 17 | — |
fragrancedive | FragranceDive | Fragrance | 16 | — |
recipedive | RecipeDive | Recipe | 17 | — |
chowdive | ChowDive | Restaurant | 12 | ✓ |
authordive | AuthorDive | Author | 14 | — |
collegedive | CollegeDive | College | 10 | ✓ |
fashiondive | FashionDive | Fashion Site | 12 | — |
pharmadive | PharmaDive | Drug/Compound | 16 | — |
lifedive | LifeDive | Organism | 14 | — |
alldive | AllDive | Entity (cross-domain) | 9 | — |
Support
Questions or issues? Contact reductionist@gmail.com.