Api Reference
Search
Full-text search across articles, profiles, series, and tags on MisarBlog.
Search Content
GET
/blog/v1/searchFull-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
qstringqueryrequiredSearch query string.
typestringqueryFilter by result type: articles, profiles, series, tags. Omit to search all types.
limitintegerquerydefault: 10Results to return (max 50).
offsetintegerquerydefault: 0Pagination offset.
Response fields
typestringOne of article, profile, series, tag.
idstringUUID of the matched record.
titlestringDisplay title.
slugstringURL slug.
urlstringCanonical URL on www.misar.blog.
excerptstringShort 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
| Status | Description |
|---|---|
400 | Missing or empty q parameter |
429 | Rate limit exceeded (60 req/min per IP) |