Skip to content

API Reference

Base URL:

https://fetchmeta.zindle.com.au

All endpoints are versioned under /v1.


Extract metadata

GET /v1/fetch

Fetches a URL and returns its structured metadata.

Authentication

Required. Pass your key in the X-API-Key header.

Query parameters

Parameter Type Required Description
url string Yes The HTTP or HTTPS URL to extract metadata from.

The URL must begin with http:// or https://. Any other scheme returns a 400 error.

Response

Returns a JSON object with the following fields. Any field the page does not provide is returned as null — fields are never omitted, so the response shape is consistent.

Field Type Description
title string | null The page <title>.
description string | null The <meta name="description"> content.
og_title string | null The og:title Open Graph tag.
og_description string | null The og:description Open Graph tag.
og_image string | null The og:image Open Graph tag.
og_url string | null The og:url Open Graph tag.
canonical_url string | null The <link rel="canonical"> URL.
favicon_url string | null The favicon URL, resolved from link tags or the domain default.

Example

curl "https://fetchmeta.zindle.com.au/v1/fetch?url=https://github.com" \
  -H "X-API-Key: fm_live_your_key_here"
{
  "title": "GitHub: Let's build from here",
  "description": "GitHub is where over 100 million developers shape the future of software, together.",
  "og_title": "GitHub: Let's build from here",
  "og_description": "GitHub is where over 100 million developers shape the future of software, together.",
  "og_image": "https://github.githubassets.com/assets/campaign-social.png",
  "og_url": "https://github.com/",
  "canonical_url": "https://github.com/",
  "favicon_url": "https://github.com/favicon.ico"
}

Health check

GET /v1/health

Returns the service status. No authentication required.

Response

{
  "status": "healthy",
  "version": "1.0.0"
}

Error codes

Status Meaning
400 Invalid request — the url parameter is missing or not http/https.
401 Missing or invalid API key.
429 Rate limit exceeded. See Limits.

Errors return a JSON body with a detail field describing the problem:

{
  "detail": "URL must start with http:// or https://"
}