MisarMisar Docs
MisarMailMisarBlogMisarReachMisarPostMisarDevMisarCoderMisarSEOMisar PlatformMisar SSO
API Reference

Search

Search across published articles, creator profiles, and tags on MisarBlog.

Search Content

GET/blog/v1/search

Search across published articles, creator profiles, and tags. Requires a Bearer API key and is rate-limited to 100 requests per minute per key.

Provide q (keyword, min 2 characters) and/or one of the filters (tag, author, from, to). If none are provided, empty result arrays are returned.

Query parameters

qstringquery

Keyword search (min 2 characters). Optional when using a filter alone.

typestringquerydefault: all

Result type: all, articles, profiles, or tags.

tagstringquery

Filter articles by tag slug. Can combine with q.

authorstringquery

Filter articles by author username.

sortstringquerydefault: relevance

Ordering: relevance, newest, oldest, or popular.

fromstringquery

ISO date lower bound on published_at (e.g. 2026-01-01).

tostringquery

ISO date upper bound on published_at.

limitintegerquerydefault: 20

Max results per type (1–50).

Response fields

The response contains three arrays: articles, profiles, and tags.

articlesArray<object>

Matched articles. Each item includes slug, title, excerpt, url, cover_image_url, published_at, read_time_seconds, tags, view_count, and an author object (username, display_name, avatar_url, profile_url).

profilesArray<object>

Matched creator profiles. Each item includes username, display_name, avatar_url, bio, profile_url, follower_count, and article_count. Only returned when a keyword q is supplied without an author filter.

tagsArray<{ name, count }>

Matched tags with their occurrence counts. Only returned when a keyword q is supplied.

Request
curl "https://api.misar.io/blog/v1/search?q=next.js&type=articles&limit=5" \
  -H "Authorization: Bearer mbk_YOUR_KEY"
200 — OK
{
  "articles": [
    {
      "slug": "building-ai-apps-with-next-js",
      "title": "Building AI Apps with Next.js",
      "excerpt": "A practical guide to integrating AI into your Next.js applications.",
      "url": "https://www.misar.blog/@johndoe/articles/building-ai-apps-with-next-js",
      "cover_image_url": "https://supabase-blog.misar.io/storage/v1/object/public/covers/ai-apps.jpg",
      "published_at": "2026-02-10T09:00:00Z",
      "read_time_seconds": 480,
      "tags": ["next.js", "ai"],
      "view_count": 1240,
      "author": {
        "username": "johndoe",
        "display_name": "John Doe",
        "avatar_url": "https://supabase-blog.misar.io/storage/v1/object/public/avatars/johndoe.jpg",
        "profile_url": "https://www.misar.blog/@johndoe"
      }
    }
  ],
  "profiles": [],
  "tags": []
}

Examples

const res = await fetch(
  "https://api.misar.io/blog/v1/search?" +
    new URLSearchParams({ q: "next.js", type: "articles", limit: "5" }),
  { headers: { Authorization: `Bearer ${process.env.MISARBLOG_API_KEY}` } }
);
const { articles, profiles, tags } = await res.json();

for (const article of articles) {
  console.log(article.title, article.url);
}

Errors

StatusDescription
400Query supplied but shorter than 2 characters
401Invalid or missing API key
429Rate limit exceeded (100 req/min per key)