Back to Home

API Documentation

Everything you need to integrate MetaFetch

Quick Start

  1. 1

    Sign up for an account

    Create your free account to get started with 250 requests/month.

  2. 2

    Generate an API key

    Go to your dashboard and create a new API key.

  3. 3

    Make your first request

    Use the examples below to enrich your first domain.

Authentication

All API requests require authentication using your API key. Include your key in the x-api-key header:

x-api-key: mf_your_api_key

Keep your API keys secure. Never expose them in client-side code or public repositories.

Base URL

https://metafetch-production.up.railway.app

Endpoints

POST/v1/enrich

Enrich a domain with company information. Returns cached data if available, otherwise queues a background job.

Request Body

{ "domain": "stripe.com" // Required: The domain to enrich }

Code Examples

curl -X POST https://metafetch-production.up.railway.app/v1/enrich \
  -H "x-api-key: mf_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"domain": "stripe.com"}'
GET/v1/enrich/{domain}

Retrieve cached company data for a specific domain.

Parameters

domainThe domain to look up (e.g., stripe.com)
GET/v1/enrich/status/{request_id}

Check the processing status of an enrichment request.

Response Statuses

completedData is ready and available
processingEnrichment is in progress
failedEnrichment failed, retry later

Response Format

Successful responses return a JSON object with the following structure:

{
  "status": "success",
  "data": {
    "domain": "stripe.com",
    "company_name": "Stripe",
    "description": "Online payment processing for internet businesses",
    "logo_url": "https://stripe.com/img/v3/home/twitter.png",
    "favicon_url": "https://stripe.com/favicon.ico",
    "country": "US",
    "city": "San Francisco",
    "industry": "Financial Technology",
    "tags": ["payments", "fintech", "saas", "developer tools"],
    "social_profiles": {
      "linkedin": "https://linkedin.com/company/stripe",
      "twitter": "https://twitter.com/stripe",
      "github": "https://github.com/stripe"
    },
    "last_enriched_at": "2025-12-22T10:30:00Z"
  },
  "cached": true,
  "request_id": "req_abc123"
}

Data Fields

FieldTypeDescription
domainstringThe queried domain
company_namestringOfficial company name
descriptionstringCompany description/tagline
logo_urlstringURL to company logo
favicon_urlstringURL to site favicon
countrystringCountry code (ISO 3166-1)
citystringCity/headquarters location
industrystringPrimary industry classification
tagsarrayRelated keywords and categories
social_profilesobjectSocial media profile URLs
last_enriched_atdatetimeWhen data was last updated

Rate Limits

Rate limits are applied per API key. Exceeding limits returns a 429 status code.

60/min

Free tier

300/min

Starter tier

1,000/min

Pro tier

Custom

Enterprise

Error Handling

Errors return appropriate HTTP status codes with a JSON body:

400Bad Request

Invalid domain format or missing required fields

401Unauthorized

Missing or invalid API key

429Too Many Requests

Rate limit exceeded, retry after cooldown

404Not Found

Domain not found in cache, enrichment in progress

Ready to get started?

Create your free account and start enriching domains today.