Misar Docs
MisarMailMisar.BlogMisarReachMisarPostMisar.DevMisar PlatformMisar IdentityMisar Posts API
Api Reference

Search

Full-text search across articles, profiles, series, and tags on MisarBlog.

Search Content

GET/blog/v1/search

Full-text search across published articles, creator profiles, series, and tags. This endpoint is public — no API key required — but is rate-limited to 60 requests per minute per IP.

Query parameters

qstringqueryrequired

Search query string.

typestringquery

Filter by result type: articles, profiles, series, tags. Omit to search all types.

limitintegerquerydefault: 10

Results to return (max 50).

offsetintegerquerydefault: 0

Pagination offset.

Response fields

typestring

One of article, profile, series, tag.

idstring

UUID of the matched record.

titlestring

Display title.

slugstring

URL slug.

urlstring

Canonical URL on www.misar.blog.

excerptstring

Short description or snippet.

curl "https://api.misar.io/blog/v1/search?q=next.js+ai&type=articles&limit=5"
{
  "results": [
    {
      "type": "article",
      "id": "uuid",
      "title": "Building AI Apps with Next.js",
      "slug": "building-ai-apps-with-next-js",
      "url": "https://www.misar.blog/@johndoe/articles/building-ai-apps-with-next-js",
      "excerpt": "A practical guide to integrating AI into your Next.js applications."
    },
    {
      "type": "profile",
      "id": "uuid",
      "title": "Jane Doe",
      "slug": "janedoe",
      "url": "https://www.misar.blog/@janedoe",
      "excerpt": "Full-stack engineer writing about React and AI."
    }
  ],
  "total": 142,
  "limit": 10,
  "offset": 0
}

Examples

TypeScript SDK

const res = await fetch(
  "https://api.misar.io/blog/v1/search?" +
    new URLSearchParams({ q: "next.js ai", type: "articles", limit: "5" })
);
const { results, total } = await res.json();

for (const item of results) {
  console.log(item.title, item.url);
}

Errors

StatusDescription
400Missing or empty q parameter
429Rate limit exceeded (60 req/min per IP)