{
  "info": {
    "name": "Oneflow Public API",
    "description": "Programmatic access to the Oneflow contract lifecycle management and e-signature platform. Base URL: https://api.oneflow.com/v1. Authentication uses the x-oneflow-api-token header plus, for most endpoints, an x-oneflow-user-email header for permission-scoped authorization. Endpoints marked (modeled) are inferred from Oneflow's documented resource model and REST conventions; ping, contract create/get/list/publish, templates, workspaces, and users are confirmed against the public docs.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api.oneflow.com/v1", "type": "string" },
    { "key": "apiToken", "value": "", "type": "string" },
    { "key": "userEmail", "value": "", "type": "string" }
  ],
  "item": [
    {
      "name": "Ping",
      "item": [
        {
          "name": "Ping the API",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Accept", "value": "application/json" }
            ],
            "url": { "raw": "{{baseUrl}}/ping", "host": ["{{baseUrl}}"], "path": ["ping"] },
            "description": "Validates connectivity and the API token. Returns 200 with an empty object."
          }
        }
      ]
    },
    {
      "name": "Contracts",
      "item": [
        {
          "name": "List contracts",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts", "host": ["{{baseUrl}}"], "path": ["contracts"] },
            "description": "Retrieves the list of contracts available to the acting user."
          }
        },
        {
          "name": "Create a contract",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{\n  \"workspace_id\": 1,\n  \"template_id\": 1,\n  \"parties\": [],\n  \"data_fields\": []\n}" },
            "url": { "raw": "{{baseUrl}}/contracts/create", "host": ["{{baseUrl}}"], "path": ["contracts", "create"] },
            "description": "Creates a new contract in a workspace from a template."
          }
        },
        {
          "name": "Get a contract",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Retrieves a single contract by its ID."
          }
        },
        {
          "name": "Update a contract (modeled)",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Updates the top-level information of a draft contract. Modeled."
          }
        },
        {
          "name": "Delete a contract (modeled)",
          "request": {
            "method": "DELETE",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Deletes a contract. Modeled."
          }
        },
        {
          "name": "Publish a contract",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{\n  \"subject\": \"Please sign\",\n  \"message\": \"Here is your contract.\"\n}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/publish", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "publish"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Publishes a draft contract, sending the invitation/signing message to its participants."
          }
        },
        {
          "name": "Copy a contract (modeled)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/copy", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "copy"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Creates a copy of an existing contract. Modeled."
          }
        }
      ]
    },
    {
      "name": "Contract Files",
      "item": [
        {
          "name": "Download a contract file (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/contract_files", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "contract_files"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Downloads a file associated with a contract (PDF / signed document). Modeled."
          }
        }
      ]
    },
    {
      "name": "Templates",
      "item": [
        {
          "name": "Get templates",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/templates", "host": ["{{baseUrl}}"], "path": ["templates"] },
            "description": "Retrieves the templates available for the specified user."
          }
        },
        {
          "name": "Get template types (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/template_types", "host": ["{{baseUrl}}"], "path": ["template_types"] },
            "description": "Retrieves the template types defined in the account. Modeled."
          }
        }
      ]
    },
    {
      "name": "Workspaces",
      "item": [
        {
          "name": "Get workspaces",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/workspaces", "host": ["{{baseUrl}}"], "path": ["workspaces"] },
            "description": "Retrieves the list of workspaces in the account."
          }
        }
      ]
    },
    {
      "name": "Data Fields",
      "item": [
        {
          "name": "Get contract data fields (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/data_fields", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "data_fields"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Retrieves the data fields on a contract. Modeled."
          }
        },
        {
          "name": "Update contract data fields (modeled)",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{\n  \"data_fields\": []\n}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/data_fields", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "data_fields"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Updates the values of data fields on a draft contract. Modeled."
          }
        },
        {
          "name": "Get template type data fields (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/template_types/:template_type_id/data_fields", "host": ["{{baseUrl}}"], "path": ["template_types", ":template_type_id", "data_fields"], "variable": [{ "key": "template_type_id", "value": "" }] },
            "description": "Retrieves the data fields defined on a template type. Modeled."
          }
        }
      ]
    },
    {
      "name": "Parties",
      "item": [
        {
          "name": "Add a party (modeled)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/parties", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "parties"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Adds a counterparty (company or individual) to a draft contract. Modeled."
          }
        },
        {
          "name": "Update a party (modeled)",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/parties/:party_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "parties", ":party_id"], "variable": [{ "key": "contract_id", "value": "" }, { "key": "party_id", "value": "" }] },
            "description": "Updates a party on a draft contract. Modeled."
          }
        },
        {
          "name": "Delete a party (modeled)",
          "request": {
            "method": "DELETE",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/parties/:party_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "parties", ":party_id"], "variable": [{ "key": "contract_id", "value": "" }, { "key": "party_id", "value": "" }] },
            "description": "Removes a party from a draft contract. Modeled."
          }
        }
      ]
    },
    {
      "name": "Participants",
      "item": [
        {
          "name": "Add a participant (modeled)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{\n  \"name\": \"Jane Doe\",\n  \"email\": \"jane@example.com\",\n  \"signatory\": true\n}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/parties/:party_id/participants", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "parties", ":party_id", "participants"], "variable": [{ "key": "contract_id", "value": "" }, { "key": "party_id", "value": "" }] },
            "description": "Adds a participant (signatory or viewer) to a party on a draft contract. Modeled."
          }
        },
        {
          "name": "Update a participant (modeled)",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}" },
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/parties/:party_id/participants/:participant_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "parties", ":party_id", "participants", ":participant_id"], "variable": [{ "key": "contract_id", "value": "" }, { "key": "party_id", "value": "" }, { "key": "participant_id", "value": "" }] },
            "description": "Updates a participant on a draft contract. Modeled."
          }
        },
        {
          "name": "Delete a participant (modeled)",
          "request": {
            "method": "DELETE",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/parties/:party_id/participants/:participant_id", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "parties", ":party_id", "participants", ":participant_id"], "variable": [{ "key": "contract_id", "value": "" }, { "key": "party_id", "value": "" }, { "key": "participant_id", "value": "" }] },
            "description": "Removes a participant from a party on a draft contract. Modeled."
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "List webhooks (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/webhooks", "host": ["{{baseUrl}}"], "path": ["webhooks"] },
            "description": "Lists the webhook subscriptions configured in the account. Modeled."
          }
        },
        {
          "name": "Create a webhook (modeled)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{\n  \"callback_url\": \"https://example.com/oneflow-webhook\",\n  \"sign_key\": \"secret\",\n  \"subscriptions\": [\"contract:publish\", \"contract:signed\"]\n}" },
            "url": { "raw": "{{baseUrl}}/webhooks", "host": ["{{baseUrl}}"], "path": ["webhooks"] },
            "description": "Creates a webhook subscription that delivers contract lifecycle events to a callback URL. Modeled."
          }
        },
        {
          "name": "Get a webhook (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/webhooks/:webhook_id", "host": ["{{baseUrl}}"], "path": ["webhooks", ":webhook_id"], "variable": [{ "key": "webhook_id", "value": "" }] },
            "description": "Retrieves a single webhook subscription. Modeled."
          }
        },
        {
          "name": "Delete a webhook (modeled)",
          "request": {
            "method": "DELETE",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/webhooks/:webhook_id", "host": ["{{baseUrl}}"], "path": ["webhooks", ":webhook_id"], "variable": [{ "key": "webhook_id", "value": "" }] },
            "description": "Deletes a webhook subscription. Modeled."
          }
        }
      ]
    },
    {
      "name": "Users",
      "item": [
        {
          "name": "Get users in an account",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/users", "host": ["{{baseUrl}}"], "path": ["users"] },
            "description": "Retrieves the list of users in the account."
          }
        },
        {
          "name": "Get a user (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/users/:user_id", "host": ["{{baseUrl}}"], "path": ["users", ":user_id"], "variable": [{ "key": "user_id", "value": "" }] },
            "description": "Retrieves a single user by ID. Modeled."
          }
        }
      ]
    },
    {
      "name": "Comments",
      "item": [
        {
          "name": "Get contract comments (modeled)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-oneflow-api-token", "value": "{{apiToken}}" },
              { "key": "x-oneflow-user-email", "value": "{{userEmail}}" }
            ],
            "url": { "raw": "{{baseUrl}}/contracts/:contract_id/comments", "host": ["{{baseUrl}}"], "path": ["contracts", ":contract_id", "comments"], "variable": [{ "key": "contract_id", "value": "" }] },
            "description": "Retrieves the inline comments left on a contract during negotiation. Modeled."
          }
        }
      ]
    }
  ]
}
