API Documentation

Base URL: https://fontspy.grabshot.dev

Authentication

Pass your API key via the x-api-key header or key query parameter.

curl "https://fontspy.grabshot.dev/v1/detect?url=https://example.com" \
  -H "x-api-key: fs_your_api_key"

Endpoints

GET /v1/detect

Detect all fonts used on a website. Returns font families, types (web/google/system), weights, sizes, usage details, and a performance analysis.

Parameters

ParamTypeRequiredDescription
urlstringYesWebsite URL to analyze

Example

curl "https://fontspy.grabshot.dev/v1/detect?url=https://stripe.com" \
  -H "x-api-key: fs_your_key"

Response

{
  "success": true,
  "url": "https://stripe.com",
  "fonts": [
    {
      "family": "Inter",
      "type": "web",
      "fallbacks": ["system-ui", "sans-serif"],
      "weights": ["400", "500", "600", "700"],
      "sizes": ["14px", "16px", "20px", "32px"],
      "elementCount": 142,
      "usedOn": [
        { "tag": "h1", "text": "Financial infrastructure", "weight": "700", "size": "48px" },
        { "tag": "p", "text": "Millions of companies...", "weight": "400", "size": "18px" }
      ]
    }
  ],
  "fontCount": 3,
  "webFonts": 1,
  "googleFonts": 0,
  "systemFonts": 2,
  "fontResources": [
    { "url": "https://stripe.com/fonts/inter.woff2", "size": 45320 }
  ],
  "performance": {
    "totalFontFiles": 2,
    "totalFontSizeBytes": 89640,
    "totalFontSizeKB": 88,
    "issues": [],
    "score": 100
  },
  "loadTimeMs": 2340
}
GET /v1/health

Health check endpoint. No authentication required.

curl "https://fontspy.grabshot.dev/v1/health"

Code Examples

Node.js

const res = await fetch(
  'https://fontspy.grabshot.dev/v1/detect?url=https://stripe.com',
  { headers: { 'x-api-key': 'fs_your_key' } }
);
const data = await res.json();
console.log(data.fonts);

Python

import requests

resp = requests.get(
    'https://fontspy.grabshot.dev/v1/detect',
    params={'url': 'https://stripe.com'},
    headers={'x-api-key': 'fs_your_key'}
)
print(resp.json()['fonts'])

cURL

curl "https://fontspy.grabshot.dev/v1/detect?url=https://stripe.com" \
  -H "x-api-key: fs_your_key"

Rate Limits

PlanMonthly LimitRate Limit
Free50 requests10/min
Starter ($9/mo)2,000 requests30/min
Pro ($29/mo)20,000 requests60/min
Business ($79/mo)200,000 requests120/min

Response Fields

FieldDescription
fonts[]Array of detected fonts with details
fonts[].familyFont family name
fonts[].type"web", "google", or "system"
fonts[].weightsArray of font weights used
fonts[].sizesArray of font sizes used
fonts[].elementCountNumber of elements using this font
fonts[].usedOnSample elements using the font
performance.scoreFont performance score (0-100)
performance.issuesArray of performance issues found
fontResourcesFont files loaded with URLs and sizes
loadTimeMsPage load time in milliseconds