{
  "info": {
    "_postman_id": "htmldrop-api-v1",
    "name": "HTMLDrop API v1",
    "description": "REST API for publishing and managing HTMLDrop pages.\n\nSetup:\n1. Import an environment file (Production or Staging).\n2. Set `api_key` to your key from Settings → API access (`htmd_live_…` or `htmd_test_…`).\n3. On staging, set `vercel_bypass` if Deployment Protection is enabled.\n4. Run **Create page** first — it saves `slug` for the other requests.\n\nDocs: https://htmldrop.in/docs/api",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [{ "key": "token", "value": "{{api_key}}", "type": "string" }]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "const bypass = pm.collectionVariables.get('vercel_bypass') || pm.environment.get('vercel_bypass');",
          "if (bypass) {",
          "  pm.request.headers.upsert({ key: 'x-vercel-protection-bypass', value: bypass });",
          "} else {",
          "  pm.request.headers.remove('x-vercel-protection-bypass');",
          "}"
        ]
      }
    }
  ],
  "variable": [
    { "key": "base_url", "value": "https://htmldrop.in/api/v1" },
    { "key": "api_key", "value": "" },
    { "key": "vercel_bypass", "value": "" },
    { "key": "slug", "value": "" }
  ],
  "item": [
    {
      "name": "Pages",
      "item": [
        {
          "name": "List pages",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": "{{base_url}}/pages"
          }
        },
        {
          "name": "Create page",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 200) {",
                  "  const json = pm.response.json();",
                  "  if (json.slug) {",
                  "    pm.collectionVariables.set('slug', json.slug);",
                  "    pm.environment.set('slug', json.slug);",
                  "  }",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Postman test\",\n  \"html\": \"<!DOCTYPE html><html><body><h1>Hello from Postman</h1></body></html>\"\n}"
            },
            "url": "{{base_url}}/pages"
          }
        },
        {
          "name": "Get page",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": "{{base_url}}/pages/{{slug}}"
          }
        },
        {
          "name": "Update page",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Postman test (updated)\",\n  \"html\": \"<!DOCTYPE html><html><body><h1>Updated from Postman</h1></body></html>\"\n}"
            },
            "url": "{{base_url}}/pages/{{slug}}"
          }
        },
        {
          "name": "Delete page",
          "request": {
            "method": "DELETE",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": "{{base_url}}/pages/{{slug}}"
          }
        }
      ]
    },
    {
      "name": "Page settings & analytics",
      "item": [
        {
          "name": "Get settings",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": "{{base_url}}/pages/{{slug}}/settings"
          }
        },
        {
          "name": "Update settings",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"expiresAt\": null\n}"
            },
            "url": "{{base_url}}/pages/{{slug}}/settings"
          }
        },
        {
          "name": "Get analytics",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": "{{base_url}}/pages/{{slug}}/analytics"
          }
        }
      ]
    }
  ]
}
