Diaspora metro snapshot — directory counts by metro and category
Counts of African and Caribbean diaspora business listings in the Ni Biashara directory (nibiashara.com) by metro and by category, with contact-field coverage, computed from the live directory at call time. Filter by metro and/or category, or omit both for the whole directory. Counts only, no business-level fields. Counts reflect the directory, not a census.
$0.02 per call — paid in USDC on Base over the x402 protocol, settled by Coinbase. No API key, no signup.
Parameters
| param | description |
|---|---|
metro | metro to filter, e.g. DFW, Houston, Toronto (optional) |
category | category to filter, e.g. Restaurants (optional) |
Call it (any x402 client)
# 1. GET without payment → HTTP 402 with PAYMENT-REQUIRED (price, payTo, scheme "exact")
curl -i "https://agents.nibiashara.biz/shelf/diaspora-metro-snapshot?metro=&category="
# 2. Sign the payment (EIP-3009 transferWithAuthorization, gasless) and retry
# with the PAYMENT-SIGNATURE header → response body is the delivery.
With the official JS client the whole flow is one wrapped fetch:
import { wrapFetchWithPayment } from "@x402/fetch"; // npm i @x402/fetch @x402/evm
const fetchPaid = wrapFetchWithPayment(fetch, { /* your EVM signer */ });
const res = await fetchPaid("https://agents.nibiashara.biz/shelf/diaspora-metro-snapshot?metro=&category=");
const data = await res.json();
Or install the MCP server (https://agents.nibiashara.biz/mcp, registry id biz.nibiashara/shelves) and use the job-named tool for this shelf, or buy_shelf as an escape hatch.
X-SHELF-PASS: <token> instead of paying per call — this shelf costs 2 credits per call.Example response (illustrative shape, not a live rate)
{
"query": {
"metro": "Houston"
},
"total_listings": 0,
"by_metro": [],
"by_category": [],
"illustrative": true
}
Delivers
JSON { total_listings, by_metro[], by_category[], contact_coverage_pct, available_metros, available_categories, basis, source, as_of }