{
  "info": {
    "name": "jsontoimg Render API",
    "description": "Create and track image/PDF renders from design templates.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://app.jsontoimg.com",
      "description": "Set to your API origin (same as NEXT_PUBLIC_APP_URL)."
    },
    {
      "key": "apiKey",
      "value": ""
    },
    {
      "key": "templateId",
      "value": "c3626dec-4d20-403b-8544-4d2438fcffdb"
    },
    {
      "key": "renderId",
      "value": ""
    },
    {
      "key": "batchId",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "List templates",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/api/v1/templates?limit=50&offset=0"
      }
    },
    {
      "name": "Get template schema",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/api/v1/templates/{{templateId}}/schema"
      }
    },
    {
      "name": "Create render",
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "if (pm.response.code === 202 || pm.response.code === 200) {",
              "  const body = pm.response.json();",
              "  if (body.id) pm.collectionVariables.set('renderId', body.id);",
              "}"
            ]
          }
        }
      ],
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"template\": \"{{templateId}}\",\n  \"format\": \"png\",\n  \"scale\": 1,\n  \"layers\": {\n    \"headline\": { \"text\": \"Hello, world\" }\n  }\n}"
        },
        "url": "{{baseUrl}}/api/v1/render"
      }
    },
    {
      "name": "Create render (wait)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"template\": \"{{templateId}}\",\n  \"format\": \"png\",\n  \"layers\": {}\n}"
        },
        "url": "{{baseUrl}}/api/v1/render?wait=60"
      }
    },
    {
      "name": "Get render status",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/api/v1/renders/{{renderId}}"
      }
    },
    {
      "name": "Wait for render",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/api/v1/renders/{{renderId}}/wait?timeout=30"
      }
    },
    {
      "name": "Download image",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/api/v1/renders/{{renderId}}/asset"
      }
    },
    {
      "name": "Create batch",
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "if (pm.response.code === 202 || pm.response.code === 200) {",
              "  const body = pm.response.json();",
              "  if (body.id) pm.collectionVariables.set('batchId', body.id);",
              "}"
            ]
          }
        }
      ],
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"jobs\": [\n    {\n      \"template\": \"{{templateId}}\",\n      \"format\": \"png\",\n      \"layers\": { \"headline\": { \"text\": \"A\" } }\n    },\n    {\n      \"template\": \"{{templateId}}\",\n      \"format\": \"jpg\",\n      \"layers\": { \"headline\": { \"text\": \"B\" } }\n    }\n  ]\n}"
        },
        "url": "{{baseUrl}}/api/v1/renders/batch"
      }
    },
    {
      "name": "Get batch",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/api/v1/renders/batches/{{batchId}}"
      }
    }
  ]
}