{
  "name": "Bannerbear API Playground",
  "description": "Static JSON endpoints for testing an API client. No key, no auth, CORS open.",
  "built_at": "2026-08-08T09:47:12Z",
  "endpoint_count": 30,
  "endpoints": [
    {
      "path": "/quotes.json",
      "description": "111 famous quotes with author and tags. Real data."
    },
    {
      "path": "/users.json",
      "description": "50 people with an address, a company and an avatar. Fake data."
    },
    {
      "path": "/products.json",
      "description": "40 shop items with a price, stock level and image. Fake data."
    },
    {
      "path": "/orders.json",
      "description": "200 orders. Each order points to a user_id and to product_ids."
    },
    {
      "path": "/posts.json",
      "description": "60 blog posts. Each post points to an author_id in /users.json."
    },
    {
      "path": "/comments.json",
      "description": "300 comments. Each comment points to a post_id in /posts.json."
    },
    {
      "path": "/countries.json",
      "description": "250 countries with capital, currency and population. Real data, refreshed at build time."
    },
    {
      "path": "/crypto.json",
      "description": "The top 20 coins by market cap. Real prices, refreshed at build time."
    },
    {
      "path": "/news.json",
      "description": "40 headlines from public news feeds. Real data, refreshed at build time."
    },
    {
      "path": "/quotes/page/{n}.json",
      "example": "/quotes/page/1.json",
      "description": "/quotes.json in a page envelope, 25 per page. Pages 1 to 5. Page 6 is empty, with has_more false."
    },
    {
      "path": "/users/page/{n}.json",
      "example": "/users/page/1.json",
      "description": "/users.json in a page envelope, 25 per page. Pages 1 to 2. Page 3 is empty, with has_more false."
    },
    {
      "path": "/products/page/{n}.json",
      "example": "/products/page/1.json",
      "description": "/products.json in a page envelope, 25 per page. Pages 1 to 2. Page 3 is empty, with has_more false."
    },
    {
      "path": "/orders/page/{n}.json",
      "example": "/orders/page/1.json",
      "description": "/orders.json in a page envelope, 25 per page. Pages 1 to 8. Page 9 is empty, with has_more false."
    },
    {
      "path": "/posts/page/{n}.json",
      "example": "/posts/page/1.json",
      "description": "/posts.json in a page envelope, 25 per page. Pages 1 to 3. Page 4 is empty, with has_more false."
    },
    {
      "path": "/comments/page/{n}.json",
      "example": "/comments/page/1.json",
      "description": "/comments.json in a page envelope, 25 per page. Pages 1 to 12. Page 13 is empty, with has_more false."
    },
    {
      "path": "/countries/page/{n}.json",
      "example": "/countries/page/1.json",
      "description": "/countries.json in a page envelope, 25 per page. Pages 1 to 10. Page 11 is empty, with has_more false."
    },
    {
      "path": "/crypto/page/{n}.json",
      "example": "/crypto/page/1.json",
      "description": "/crypto.json in a page envelope, 25 per page. Pages 1 to 1. Page 2 is empty, with has_more false."
    },
    {
      "path": "/news/page/{n}.json",
      "example": "/news/page/1.json",
      "description": "/news.json in a page envelope, 25 per page. Pages 1 to 2. Page 3 is empty, with has_more false."
    },
    {
      "path": "/users/{id}.json",
      "example": "/users/1.json",
      "description": "A single record by id. Ids 1 to 50."
    },
    {
      "path": "/products/{id}.json",
      "example": "/products/1.json",
      "description": "A single record by id. Ids 1 to 40."
    },
    {
      "path": "/posts/{id}.json",
      "example": "/posts/1.json",
      "description": "A single record by id. Ids 1 to 60."
    },
    {
      "path": "/large.json",
      "description": "5000 flat records, about 1 MB. Use it to test speed and memory."
    },
    {
      "path": "/errors/400.json",
      "description": "An error-shaped body for HTTP 400. Served with status 200."
    },
    {
      "path": "/errors/401.json",
      "description": "An error-shaped body for HTTP 401. Served with status 200."
    },
    {
      "path": "/errors/403.json",
      "description": "An error-shaped body for HTTP 403. Served with status 200."
    },
    {
      "path": "/errors/404.json",
      "description": "An error-shaped body for HTTP 404. Served with status 200."
    },
    {
      "path": "/errors/422.json",
      "description": "An error-shaped body for HTTP 422. Served with status 200."
    },
    {
      "path": "/errors/429.json",
      "description": "An error-shaped body for HTTP 429. Served with status 200."
    },
    {
      "path": "/errors/500.json",
      "description": "An error-shaped body for HTTP 500. Served with status 200."
    },
    {
      "path": "/status.json",
      "description": "A small health-check payload."
    }
  ]
}
