Network & infrastructure

Scraper

Fetches meta and OGP information from a URL.

MCP tool: get_page_meta

GET /v1/scraper/meta

Parameters:

ParameterTypeRequiredDescription
urlstringURL to fetch (http/https only)

Request example:

curl "https://api.thousand-api.com/v1/scraper/meta?url=https://example.com" \
  -H "x-api-key: YOUR_API_KEY"

Response example:

{
  "url": "https://example.com",
  "title": "Example Domain",
  "description": "This domain is for use in illustrative examples.",
  "favicon": "https://example.com/favicon.ico",
  "ogp": {
    "title": null,
    "description": null,
    "image": null,
    "url": null,
    "site_name": null,
    "type": null
  },
  "canonical": "https://example.com/"
}

ExchangeRate

Returns real-time exchange rates and currency conversion.

MCP tool: get_exchange_rate

GET /v1/exchangerate

Parameters:

ParameterTypeRequiredDescription
fromstringSource currency code (e.g. JPY)
tostringTarget currency code (e.g. USD)
amountnumber-Amount to convert (defaults to 1)

Request example:

curl "https://api.thousand-api.com/v1/exchangerate?from=JPY&to=USD&amount=1000" \
  -H "x-api-key: YOUR_API_KEY"

Response example:

{
  "from": "JPY",
  "to": "USD",
  "rate": 0.0067,
  "amount": 1000,
  "converted": 6.7,
  "timestamp": "2026-05-20T00:00:00.000Z"
}

Postal Lookup

Bidirectional lookup of Japanese postal codes and addresses. Forward lookup: postal code → full address. Reverse lookup: address keyword → matching postal codes. Uses official Japan Post data (~120k records), so it covers newly created and discontinued codes that LLMs may not know.

MCP tool: lookup_postal_code

The country parameter is designed for future international support. Currently only JP (Japan) is supported.

GET /v1/postal/lookup

Parameters:

ParameterTypeRequiredDescription
codestring-Postal code for forward lookup. 7 digits or XXX-XXXX (e.g. 358-0001)
addressstring-Address keyword for reverse lookup. Partial match on prefecture, city, town, or kana (e.g. 向陽台, 入間)
countrystring-Country code (default: JP). Currently JP only
limitinteger-Max results for reverse lookup (default: 10, max: 50)

Response fields:

ParameterDescription
queryRequest parameters (code / address / country)
resultsMatching postal records
results[].codePostal code without hyphen (7 digits)
results[].code_formattedPostal code with hyphen
results[].prefecturePrefecture name
results[].prefecture_kanaPrefecture name in katakana
results[].cityCity / ward name
results[].city_kanaCity name in katakana
results[].townTown / district name
results[].town_kanaTown name in katakana
results[].full_addressPrefecture + city + town combined
results[].countryCountry code
countNumber of results returned
truncatedWhether results were limited by limit (reverse lookup only)

Request example:

Example 1: Forward lookup (postal code → address)

curl "https://api.thousand-api.com/v1/postal/lookup?code=358-0001" \
  -H "x-api-key: YOUR_API_KEY"
{
  "query": { "code": "358-0001", "country": "JP" },
  "results": [
    {
      "code": "3580001",
      "code_formatted": "358-0001",
      "prefecture": "埼玉県",
      "prefecture_kana": "サイタマケン",
      "city": "入間市",
      "city_kana": "イルマシ",
      "town": "向陽台",
      "town_kana": "コウヨウダイ",
      "full_address": "埼玉県入間市向陽台",
      "country": "JP"
    }
  ],
  "count": 1,
  "truncated": false
}

Example 2: Reverse lookup by city (multiple matches)

curl "https://api.thousand-api.com/v1/postal/lookup?address=%E5%85%A5%E9%96%93%E5%B8%82" \
  -H "x-api-key: YOUR_API_KEY"
{
  "query": { "address": "入間市", "country": "JP" },
  "results": [
    {
      "code": "3580001",
      "code_formatted": "358-0001",
      "prefecture": "埼玉県",
      "city": "入間市",
      "town": "向陽台",
      "full_address": "埼玉県入間市向陽台",
      "country": "JP"
    }
  ],
  "count": 10,
  "truncated": true
}

Example 3: Reverse lookup by town (partial match)

curl "https://api.thousand-api.com/v1/postal/lookup?address=%E5%90%91%E9%99%BD%E5%8F%B0" \
  -H "x-api-key: YOUR_API_KEY"
{
  "query": { "address": "向陽台", "country": "JP" },
  "results": [
    {
      "code": "3580001",
      "code_formatted": "358-0001",
      "prefecture": "埼玉県",
      "city": "入間市",
      "town": "向陽台",
      "full_address": "埼玉県入間市向陽台",
      "country": "JP"
    }
  ],
  "count": 1,
  "truncated": false
}

IPLookup

Returns geographic information for an IP address (country, region, city, coordinates).

MCP tool: get_ip_info

GET /v1/iplookup

Parameters:

ParameterTypeRequiredDescription
addressstring-IP address to look up (defaults to the request source IP)

Request example:

curl "https://api.thousand-api.com/v1/iplookup?address=8.8.8.8" \
  -H "x-api-key: YOUR_API_KEY"

Response example:

{
  "is_valid": true,
  "address": "8.8.8.8",
  "country": "United States",
  "country_code": "US",
  "region": "California",
  "city": "Mountain View",
  "zip": "94043",
  "lat": 37.4223,
  "lon": -122.0847
}

URL Resolve

Follows HTTP redirects to the final URL. Use for short links, affiliate URLs, and link safety checks. Combine with the Scraper tool to fetch page metadata after resolving.

MCP tool: resolve_url

GET /v1/url/resolve

Parameters:

ParameterTypeRequiredDescription
urlstringURL to resolve (http/https only)

The url query parameter must be URL-encoded (e.g. https://bit.ly/xxxxx → https%3A%2F%2Fbit.ly%2Fxxxxx).

Request example:

curl "https://api.thousand-api.com/v1/url/resolve?url=https%3A%2F%2Fbit.ly%2Fxxxxx" \
  -H "x-api-key: YOUR_API_KEY"

Response example:

{
  "original": "https://bit.ly/xxxxx",
  "final": "https://example.com/product/123",
  "redirects": [
    "https://bit.ly/xxxxx",
    "https://example.com/product/123"
  ],
  "redirect_count": 1,
  "has_redirect": true
}

Response fields:

ParameterDescription
originalRequested URL
finalFinal URL after following redirects
redirectsOrdered list of URLs visited (from original to final)
redirect_countNumber of redirects (redirects.length - 1)
has_redirectTrue when at least one redirect was followed
truncatedPresent and true when the 10-hop limit was reached

Response:

Only http and https are followed. Each hop times out after 5 seconds. Up to 10 redirects; when the limit is reached, truncated is true.

URL Health Check

Checks a URL's HTTP status code, response time, and SSL certificate details. Combine with resolve_url to inspect the final destination of shortened URLs.

MCP tool: inspect_url

GET /v1/url/inspect

Parameters:

ParameterTypeRequiredDescription
urlstringURL to inspect (http/https only)

Request example:

curl "https://api.thousand-api.com/v1/url/inspect?url=https%3A%2F%2Fwww.thousand-api.com" \
  -H "x-api-key: YOUR_API_KEY"

Response example:

{
  "url": "https://www.thousand-api.com",
  "status_code": 200,
  "response_time_ms": 234,
  "reachable": true,
  "headers": {
    "content-type": "text/html",
    "x-frame-options": "DENY"
  },
  "ssl": {
    "valid": true,
    "expires_at": "2027-01-01T00:00:00.000Z",
    "days_remaining": 220,
    "issuer": "Amazon"
  }
}

DNS Lookup

Look up DNS records for a domain. Supports A, AAAA, CNAME, MX, TXT, and NS using Node.js built-in dns (no external dependencies).

MCP tool: dns_lookup

GET /v1/dns/lookup

Parameters:

ParameterTypeRequiredDescription
domainstringDomain name to look up
typestring-A / AAAA / CNAME / MX / TXT / NS / all (default: all)

Request example:

curl "https://api.thousand-api.com/v1/dns/lookup?domain=example.com&type=all" \
  -H "x-api-key: YOUR_API_KEY"

Response example:

{
  "domain": "example.com",
  "type": "all",
  "records": {
    "A": ["93.184.216.34"],
    "NS": ["a.iana-servers.net", "b.iana-servers.net"],
    "TXT": ["v=spf1 -all"]
  }
}