List Blog Posts
Returns a page of the published blog articles (stories), newest first, with an optional category filter. This list is public and read-only.
GET
/v1/blogAuthentication
Public key
?key=pk_…Public key in the `key` query parameter. No OAuth, no secret.
Edge cache: 60 s + stale-while-revalidate 300 s
Query Parameters
keystringThe site's public key (pk_…). It selects the account. Safe to ship to the browser.
pagenumberPage number, starting at 1. Invalid values fall back to 1.
Default:
1pageSizenumberArticles per page, at most 24. Invalid values fall back to 9.
Default:
9categorystringCategory slug from `GET /v1/blog/categories`.
featuredstringSend `1` or `true` for the homepage behavior: the featured articles, or the latest ones when none is featured. The response then also carries `featured`.
1trueResponses
200Success
application/jsonpostsarray[object]totalnumberpagenumberpageSizenumbertotalPagesnumberErrors
401Missing or invalid public key403TENANT_INACTIVE: the account has no active subscription (body also carries `code`)Notes
- A page past the last one returns `posts: []` with the real `total`. `totalPages` is at least 1.
- With `featured=1` the body adds `featured: boolean`: false means no article is featured and these are the latest ones.
- `excerpt` is about 130 characters of plain text. Reading time is `Math.ceil(wordCount / 250)` minutes.
- Articles without an author are credited to the site owner. Author emails are never returned.
Request
curl --request GET \--url "https://api.pandaidx.com/v1/blog?key={{public_key}}"
Response200 OK
{"posts": [{"slug": "first-time-buyer-guide-miami","title": "A First-Time Buyer Guide to Miami","subtitle": "What to know before you make an offer.","excerpt": "What to know before you make an offer.","image": "https://media.example.com/blog/first-time-buyer.jpg","categories": ["home-buyers"],"publishedAt": "2026-09-12T14:03:22.000Z","author": {"name": "Alex Morgan, Realtor®","image": "https://media.example.com/alex-morgan/portrait.jpg"},"wordCount": 920}],"total": 14,"page": 1,"pageSize": 9,"totalPages": 2}