{
  "info": {
    "name": "Fill Public API",
    "_postman_id": "7f2a56b5-93c1-4f5d-9e3f-9b6d7b8a3f21",
    "description": "Importable examples for the Fill public form management API. Set the baseUrl and serviceToken collection variables before sending requests.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.example.com",
      "type": "string"
    },
    {
      "key": "serviceToken",
      "value": "fill_sk_live_replace_me",
      "type": "string"
    },
    {
      "key": "formId",
      "value": "65f1a6f8c2d1e9a123456789",
      "type": "string"
    },
    {
      "key": "itemId",
      "value": "123456789",
      "type": "string"
    },
    {
      "key": "boardId",
      "value": "987654321",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{serviceToken}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "Create item-bound form",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms"]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"target\": \"item\",\n  \"config\": {\n    \"itemIds\": [\"{{itemId}}\"],\n    \"conflictStrategy\": \"skip\"\n  },\n  \"form\": {\n    \"settings\": {\n      \"notifyOnSubmit\": true,\n      \"allowEditingAfterSubmit\": false,\n      \"customMessage\": \"Please confirm the details below.\",\n      \"expirationDate\": \"2026-06-01T00:00:00.000Z\",\n      \"password\": \"client-intake\"\n    },\n    \"columns\": [\n      {\n        \"id\": \"email\",\n        \"validations\": [{ \"operator\": \"required\", \"value\": true }]\n      },\n      {\n        \"id\": \"status\",\n        \"readonly\": true,\n        \"description\": \"Current project status\"\n      }\n    ]\n  }\n}"
        },
        "description": "Creates one or more forms for existing monday.com items. Maximum 50 item IDs per request."
      }
    },
    {
      "name": "Create board-backed form",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms"]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"target\": \"board\",\n  \"config\": {\n    \"boardId\": \"{{boardId}}\",\n    \"mode\": \"permanent\"\n  },\n  \"form\": {\n    \"columns\": [\n      { \"id\": \"name\" },\n      { \"id\": \"email\" },\n      { \"id\": \"status\" }\n    ]\n  }\n}"
        },
        "description": "Creates a board-backed public link. Permanent links create a new item for each submission until paused."
      }
    },
    {
      "name": "List forms",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms?page=1&limit=10&boardId={{boardId}}",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms"],
          "query": [
            {
              "key": "page",
              "value": "1"
            },
            {
              "key": "limit",
              "value": "10"
            },
            {
              "key": "boardId",
              "value": "{{boardId}}"
            }
          ]
        },
        "description": "Lists forms for the token account. Optional filters: itemId, boardId."
      }
    },
    {
      "name": "Get form",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms/{{formId}}",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms", "{{formId}}"]
        },
        "description": "Fetches a single form by Fill form ID."
      }
    },
    {
      "name": "Update form",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms/{{formId}}",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms", "{{formId}}"]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"form\": {\n    \"settings\": {\n      \"allowEditingAfterSubmit\": true,\n      \"expirationDate\": null\n    },\n    \"columns\": [\n      {\n        \"id\": \"email\",\n        \"validations\": [{ \"operator\": \"required\", \"value\": true }]\n      }\n    ]\n  }\n}"
        },
        "description": "Updates settings, columns, or both. At least one of form.settings or form.columns is required."
      }
    },
    {
      "name": "Pause or resume form",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms/{{formId}}/active",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms", "{{formId}}", "active"]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"active\": false\n}"
        },
        "description": "Sets whether the form accepts new submissions."
      }
    },
    {
      "name": "Delete form",
      "request": {
        "method": "DELETE",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/api/v1/forms/{{formId}}",
          "host": ["{{baseUrl}}"],
          "path": ["api", "v1", "forms", "{{formId}}"]
        },
        "description": "Deletes a Fill form by ID."
      }
    }
  ]
}
