MeByte
MeByte
Open platform · v1

Developer API

Every free MeByte GEO tool is also a JSON endpoint. No key, no account, CORS open to any origin — call it from your app, your agent or a static page, and link results back for your users.

Quick start
curl "https://mebyte.ai/api/public/v1/tools/crawler-check?url=example.com"

The catalog at /api/public/v1/tools lists every endpoint, its parameters and a live example — handy for AI agents that discover APIs at runtime.

Read your quota headers

Use -i (or -D-) to print the response headers. Every response — including 429 — carries your current tier, mode and remaining quota.

# -i prints headers + body; add your key to lift the quota
curl -i "https://mebyte.ai/api/public/v1/tools/crawler-check?url=example.com" \
  -H "x-api-key: mbk_live_xxxxxxxx"
HTTP/2 200
x-ratelimit-tier: growth
x-ratelimit-mode: full
x-ratelimit-limit: 400
x-ratelimit-remaining: 397
x-ratelimit-reset: 1750000000
x-ratelimit-daily-limit: 4000
x-ratelimit-daily-remaining: 3912
X-RateLimit-Tier
free, solo, growth or partner — which multiplier applied to this call.
X-RateLimit-Mode
full (machine-readable JSON) or share-link (keyless summary + shareable URL).
X-RateLimit-Limit
Requests allowed in the current hourly window for this endpoint.
X-RateLimit-Remaining
Requests left in the hourly window. Throttle yourself as it nears 0.
X-RateLimit-Reset
Unix seconds when the hourly window resets.
X-RateLimit-Daily-Limit
Requests allowed today.
X-RateLimit-Daily-Remaining
Requests left today.
Retry-After
Only on 429 — seconds to wait before retrying.
Handle 429 with backoff

On 429 we return Retry-After (seconds) plus a quota object in the body. Always wait at least Retry-After, then add exponential backoff with jitter. Never retry in a tight loop — repeated hits keep the window full.

url="https://mebyte.ai/api/public/v1/tools/crawler-check?url=example.com"
for attempt in 1 2 3 4 5; do
  code=$(curl -s -o /tmp/out.json -D /tmp/hdr.txt -w '%{http_code}' \
    -H "x-api-key: $MEBYTE_API_KEY" "$url")
  [ "$code" != "429" ] && break

  # honour Retry-After, then exponential backoff with jitter
  wait=$(grep -i '^retry-after:' /tmp/hdr.txt | tr -dc '0-9')
  wait=$(( ${wait:-1} * attempt * attempt + RANDOM % 3 ))
  echo "rate limited, sleeping ${wait}s (attempt $attempt)" >&2
  sleep "$wait"
done
cat /tmp/out.json
async function callMeByte(url, { key, maxAttempts = 5 } = {}) {
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
    const res = await fetch(url, { headers: key ? { "x-api-key": key } : {} });

    // quota telemetry is on every response, 200 and 429 alike
    const quota = {
      tier: res.headers.get("X-RateLimit-Tier"),
      mode: res.headers.get("X-RateLimit-Mode"),
      remaining: Number(res.headers.get("X-RateLimit-Remaining") ?? 0),
      resetAt: Number(res.headers.get("X-RateLimit-Reset") ?? 0) * 1000,
    };

    if (res.status !== 429) return { data: await res.json(), quota };
    if (attempt === maxAttempts) throw new Error("MeByte rate limit: give up");

    const retryAfter = Number(res.headers.get("Retry-After") ?? 1);
    const backoff = retryAfter * 1000 * 2 ** (attempt - 1);
    await new Promise((r) => setTimeout(r, backoff + Math.random() * 500));
  }
}

If you keep hitting the hourly cap, issue an API key below — paid tiers multiply both the hourly and daily quotas and unlock the full JSON payload.

Endpoints

AI crawler access check
GET · POST
/api/public/v1/tools/crawler-check

Reads robots.txt and llms.txt and reports whether GPTBot, ClaudeBot, PerplexityBot and friends may read the site.

url
website address (required)
https://mebyte.ai/api/public/v1/tools/crawler-check?url=example.com
llms.txt generator
GET · POST
/api/public/v1/tools/llms-txt

Returns a ready-to-upload llms.txt. Pass format=text to get the raw file instead of JSON.

brand
brand name (required)
url
website (required)
summary
one-line description (required)
products
pipe-separated list, or JSON array on POST
differentiators
pipe-separated list, or JSON array on POST
audience / contact
optional strings
format
json (default) or text
https://mebyte.ai/api/public/v1/tools/llms-txt?brand=Acme&url=acme.com&summary=We+make+widgets&format=text
JSON-LD schema generator
GET · POST
/api/public/v1/tools/schema

Builds Organization, Product or FAQPage structured data, plus a paste-ready <script> tag.

type
Organization | Product | FAQPage
name / url
required
description / logo / sameAs
optional
price / currency
Product only
faqs
question::answer|question::answer, or JSON array on POST
format
json (default) or script
https://mebyte.ai/api/public/v1/tools/schema?type=Organization&name=Acme&url=acme.com
AI visibility value estimate
GET · POST
/api/public/v1/tools/value

Turns mention rate into monthly and annual revenue, ROI and payback days — and returns a shareable calculator link.

q
monthly buyer questions in AI assistants
now / goal
current and target mention rate, %
aov / cvr / margin
order value, conversion %, margin %
cost
monthly spend on getting recommended
https://mebyte.ai/api/public/v1/tools/value?q=4000&now=8&goal=35&aov=480

External link builder

Enter a website to generate ready-made links — API calls and shareable result pages you can drop into your product, docs or client report.

Crawler check API call

https://mebyte.ai/api/public/v1/tools/crawler-check?url=example.com

Shareable crawler report page

https://mebyte.ai/tools/ai-crawlers?url=example.com

Value calculator link

https://mebyte.ai/value-calculator?q=4000&now=8&goal=35&aov=480

Free audit deep link

https://mebyte.ai/audit?url=example.com

Access tiers & rate limits

Keyless calls are free forever, but they return a shareable result link plus a headline summary — not the full payload. Send an API key (x-api-key: mbk_live_…, or Authorization: Bearer …) to receive the complete JSON and a multiplied quota. Every response carries X-RateLimit-Tier, X-RateLimit-Mode, X-RateLimit-Remaining and the daily equivalents; over quota you get 429 with a quota object and Retry-After.

TierQuotaResponse
Free (no key)Base quota, per IP or brand_idShare link + summary only
Solo plan key5× base quotaFull JSON payload
Growth plan key20× base quotaFull JSON payload
Partner key60× base quotaFull JSON + priority support
EndpointBase / hourBase / day
/api/public/v1/tools2402,000
/api/public/v1/tools/crawler-check20100
/api/public/v1/tools/llms-txt60400
/api/public/v1/tools/schema60400
/api/public/v1/tools/value120800

Key tiers multiply the base numbers above — a Growth key gets 400 crawler checks per hour.

API keys

Keys are issued per brand on paid plans and shown once. Revoke any key instantly.

Your API keys

Loading keys…

OpenAPI spec

Every public endpoint — free tools and the partner API — is described in one OpenAPI 3.1 document, including each X-RateLimit-* response header and a full 429 example with Retry-After. Import it into Postman, Insomnia, or an SDK generator.

# generate a typed client
npx @hey-api/openapi-ts -i https://mebyte.ai/api/public/v1/openapi.json -o ./src/mebyte

Fair use & attribution

Building on MeByte?

Run the free site check to see what the API reports for your own domain first.

Run the free check