Overview
The MarketXY API gives you programmatic access to our domain intelligence platform. Use it to query live data, run reverse lookups, build feeds, trigger exports, and perform bulk operations — all through a single RESTful interface.
| Endpoint | Method | Purpose |
|---|---|---|
| /v2/live | GET | Single domain or filtered live data |
| /v2/reverse | GET | Find domains by email, IP, nameserver, company |
| /v2/search | GET | Discovery with full multi-filter support |
| /v2/count | GET | Count matching domains without fetching data |
| /v2/feed | GET | Daily updated and newly registered domains |
| /v2/export | GET | Trigger a CSV or JSON download job |
| /v2/bulk/live | POST | Batch lookup for multiple domains |
| /v2/bulk/reverse | POST | Bulk reverse lookup |
API Key Auth
Pass your key as X-API-Key: YOUR_KEY header on every request.
Rate Limits
Starter: 100 req/min · Pro: 1,000 req/min · Enterprise: unlimited
Output Formats
JSON by default. Add format=csv to any endpoint for CSV output.
Authentication
Include your API key in every request via the X-API-Key header. Never expose keys client-side. Keys are tied to your plan's rate limits.
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.marketxy.com/v2/live?domain=amazon.comQuickstart
Get your first result in under 60 seconds. Grab your API key from the dashboard, then run the request below.
curl -H "X-API-Key: YOUR_KEY" \
"https://api.marketxy.com/v2/live?domain=google.com"curl -H "X-API-Key: YOUR_KEY" \
"https://api.marketxy.com/v2/live?country=IN&cms=wordpress&limit=100"curl -H "X-API-Key: YOUR_KEY" \
"https://api.marketxy.com/v2/count?category=ecommerce&country=US"Response Format
All responses are JSON by default. Every response wraps data in a consistent envelope with status, count, and data keys.
{
"status": "ok",
"count": 1,
"total": 48291,
"page": 1,
"data": [
{
"domain": "example.com",
"country": "US",
"cms": "WordPress",
"category": "ecommerce",
"mxy_rank": 4218,
"status": "active"
}
]
}{
"status": "error",
"code": 401,
"message": "Invalid or missing API key"
}Common Parameters
These parameters work across all GET endpoints. Use ISO codes for country (IN, US) and language (en, hi). Multiple values: comma-separated like country=IN,US,GB.
- domainSingle domain nameamazon.com
- queryFree text searchcrypto
- categoryCategory filterecommerce
- countryISO country codeIN
- langLanguage (ISO 639)en
- cmsCMS filterwordpress
- techTechnology filtershopify
- companyCompany nameopenai
- tldExtension filtercom
- statusactive / inactiveactive
- emailEmail filter[email protected]
- phonePhone number919999999999
- nsNameserverns1.cloudflare.com
- mxMX recordaspmx.l.google.com
- ipIP address8.8.8.8
- pagePage number1
- limitResults per page1000
- sortSort fieldrank
- orderasc or descdesc
- formatjson or csvjson
/v2/live
Query current domain data. Use for a single domain lookup or filtered searches across the full live index.
{
"status": "ok", "count": 1,
"data": [{
"domain": "amazon.com", "registered": "1994-11-01",
"age_years": 31, "category": "ecommerce",
"country": "US", "cms": null,
"tech": ["React", "AWS"], "mxy_rank": 10, "status": "active"
}]
}/v2/reverse
Find all domains linked to an email, company, IP, or nameserver. Useful for competitive research and OSINT.
{
"status": "ok", "count": 14,
"data": [{ "domain": "example.com", "match_field": "email", "mxy_rank": 4218 }]
}/v2/search
General-purpose discovery. Combine filters to build custom domain lists by tech stack, industry, country, language, and more.
{
"status": "ok", "total": 48291, "page": 1, "count": 100,
"data": [ /* array of domain objects */ ]
}/v2/count
Returns only the match count for a given filter set with no data transferred. Ideal for checking result size before an export.
{ "status": "ok", "query": { "category": "ecommerce" }, "count": 4829104 }/v2/feed
Access daily updated and newly indexed domains. Filter by category, country, or date to stream fresh data into your pipeline.
{
"status": "ok", "date": "2026-04-23", "count": 1000,
"data": [{ "domain": "newshop.com", "indexed_at": "2026-04-23T06:14:22Z", "category": "ecommerce" }]
}/v2/export
Trigger a bulk download job. Large exports are queued and delivered via a signed download URL. Supports JSON and CSV output.
{
"status": "queued", "job_id": "exp_4f8a92cd",
"estimated_rows": 482910, "format": "csv",
"download_url": "https://export.marketxy.com/exp_4f8a92cd.csv",
"expires_at": "2026-04-24T06:00:00Z"
}/v2/bulk/live
Look up many domains in a single POST request. Up to 10,000 domains per call. Combine with optional filters to enrich only the matching subset.
{
"domains": ["amazon.com", "openai.com", "shopify.com"],
"country": "IN",
"lang": "en",
"limit": 1000
}curl -X POST https://api.marketxy.com/v2/bulk/live \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domains":["amazon.com","openai.com"],"limit":1000}'{ "status": "ok", "requested": 3, "found": 3, "data": [/* ... */] }/v2/bulk/reverse
Perform reverse lookups for multiple inputs (emails, IPs, nameservers) in a single request.
{
"emails": ["[email protected]", "[email protected]"],
"ips": ["8.8.8.8", "1.1.1.1"],
"limit": 500
}{
"status": "ok",
"results": {
"[email protected]": { "count": 8, "domains": [/* ... */] },
"8.8.8.8": { "count": 3421, "domains": [/* ... */] }
}
}Parsed API
Returns structured, parsed WHOIS data — registrar, registrant, dates, nameservers — in clean JSON fields rather than raw text.
{
"status": "ok",
"domain": "amazon.com",
"registrar": "MarkMonitor Inc.",
"registrant": { "name": "Amazon Technologies, Inc.", "country": "US" },
"created": "1994-11-01",
"expires": "2027-11-01",
"updated": "2024-08-14",
"nameservers": ["ns1.p31.dynect.net", "ns2.p31.dynect.net"],
"status": ["clientTransferProhibited"]
}Timeline API
Retrieve the full historical WHOIS record timeline for a domain — ownership changes, registrar transfers, and expiry events over time.
{
"status": "ok",
"domain": "shopify.com",
"count": 12,
"timeline": [
{ "date": "2006-09-15", "event": "registered", "registrar": "GoDaddy" },
{ "date": "2011-04-02", "event": "registrar_transfer", "registrar": "MarkMonitor" },
{ "date": "2024-09-15", "event": "renewed", "expires": "2026-09-15" }
]
}Rate Limits
All plans include API access. Limits are per-minute per key. The X-RateLimit-Remaining response header shows credits left in the current window.
| Credits System | 1 lookup = 1 creditlive lookup = 5 creditsreverse lookup = 3 credits |
| Authentication Headers | Authorization: Bearer YOUR_API_KEY |
| Request Headers | Content-Type: application/json |
| Response Headers | X-RateLimit-Remaining: 4500 |
| Pagination | ?page=1&limit=100 |
| Filtering Rules | ?country=IN&lang=en&cms=wordpress |
| Sorting Rules | ?sort=created_date&order=desc |
| Date Filters | ?created_after=2026-01-01 |
| Output Formats | ?format=json?format=csv |
| Bulk Job Status | GET /v2/bulk/status?job_id=abc123 |
| Export Job Status | GET /v2/export/status?job_id=exp456 |
| Retry Policy | Retry after 5 seconds if 429 error |
| Timeout Rules | Request timeout after 30 sec |
| Data Freshness | Updated every 4–6 hours |
| API Versioning | /v1//v2/ |
| Compression Support | Accept-Encoding: gzip |
| Async Processing | Returns job_id for long requests |
| Pagination Limits | limit=10 to 10000 |
| Best Practices | Use limit + filters for faster results |
Error Codes
All errors return a JSON body with status, code, and message. Use the HTTP status code to determine retry logic.
| Code | Meaning | Action |
|---|---|---|
| 200 | OK | Request succeeded |
| 400 | Bad Request | Check query parameters — a required param may be missing or malformed |
| 401 | Unauthorized | Invalid or missing X-API-Key header |
| 403 | Forbidden | Your plan does not have access to this endpoint |
| 404 | Not Found | Domain or resource does not exist in our index |
| 422 | Unprocessable | Parameters are valid types but fail validation rules |
| 429 | Rate Limited | Retry after 5 seconds — check X-RateLimit-Remaining |
| 500 | Server Error | Internal error — retry with exponential backoff |
| 503 | Unavailable | Service temporarily down — check status.marketxy.com |
{
"status": "error",
"code": 429,
"message": "Rate limit exceeded. Retry after 5 seconds.",
"retry_after": 5
}SDKs & Libraries
Official and community SDKs for the MarketXY API. All SDKs wrap authentication, pagination, and error handling automatically.
// npm install marketxy
const mxy = require('marketxy')({ apiKey: 'YOUR_KEY' });
const result = await mxy.live({ domain: 'amazon.com' });
console.log(result.data);# pip install marketxy
import marketxy
client = marketxy.Client(api_key="YOUR_KEY")
result = client.live(domain="amazon.com")
print(result["data"])