{
  "opencollection": "1.0.0",
  "info": {
    "name": "API Key accounts projects API",
    "version": "1.0.0"
  },
  "items": [
    {
      "info": {
        "name": "projects",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Projects",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/projects",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "page_size",
                "value": "",
                "type": "query",
                "description": "Number of items per page (max 100)"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Page number (1-based)"
              },
              {
                "name": "updated_after",
                "value": "",
                "type": "query",
                "description": "Filter items updated after this timestamp (ISO 8601)"
              },
              {
                "name": "updated_before",
                "value": "",
                "type": "query",
                "description": "Filter items updated before this timestamp (ISO 8601)"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Sort order for results"
              },
              {
                "name": "include_virtual_properties",
                "value": "",
                "type": "query",
                "description": "Whether to include virtual properties in the response. Defaults to false unless explicitly set to true."
              },
              {
                "name": "include_archived",
                "value": "",
                "type": "query",
                "description": "Whether to include archived (inactive) records in the response. By default only active records are returned."
              },
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Full text search query"
              },
              {
                "name": "title",
                "value": "",
                "type": "query",
                "description": "Title search query"
              },
              {
                "name": "address",
                "value": "",
                "type": "query",
                "description": "Address search query"
              },
              {
                "name": "primaryName",
                "value": "",
                "type": "query",
                "description": "Contact name search query"
              },
              {
                "name": "primaryPhone",
                "value": "",
                "type": "query",
                "description": "Contact phone search query"
              },
              {
                "name": "primaryEmail",
                "value": "",
                "type": "query",
                "description": "Contact email search query"
              }
            ]
          },
          "docs": "Retrieve a paginated list of projects.\n\nSupports:\n- Pagination (`page_size`, `page`)\n- Date filtering (`updated_after`, `updated_before`)\n- Sorting (`order_by`)\n- Field search (`title`, `address`, `primaryName`, `primaryPhone`, `primaryEmail`)\n- Full text search (`q`)\n\n**Note:** If a project has no `title` (empty or whitespace-only), the response returns the parent account's `title` instead. The stored value is not modified — this is a read-time fallback only. Title-based search (`title` query p"
        },
        {
          "info": {
            "name": "Create Project",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.coperniq.io/v1/projects",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "allow_new_options",
                "value": "",
                "type": "query",
                "description": "Whether to allow creation of new dropdown options during record creation"
              },
              {
                "name": "match_by",
                "value": "",
                "type": "query",
                "description": "Field to use for matching existing records"
              },
              {
                "name": "match_found_strategy",
                "value": "",
                "type": "query",
                "description": "Strategy to use when a match is found"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new project with required and optional fields.\n\nRequired fields:\n- `title`: Project title/name\n- `address`: An array containing a single string, which represents the full project location/address.\n\nOptional fields:\n- `trades`: Array of trade types\n- `accountId`: Link to existing account\n- `workflowId`: Link to workflow\n- `phaseId`: Link to phase\n- `primaryEmail`/`primaryPhone`: Contact information\n- `contacts`: Contact IDs only (no name, email, phone, etc.). The contacts must be created"
        },
        {
          "info": {
            "name": "Search Projects",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/projects/search",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "prop1",
                "value": "",
                "type": "query",
                "description": "First field to filter (standard or custom keyName)"
              },
              {
                "name": "op1",
                "value": "",
                "type": "query",
                "description": "Operator for prop1"
              },
              {
                "name": "value1",
                "value": "",
                "type": "query",
                "description": "Value for prop1 (comma-separated values for in/nin or between)"
              },
              {
                "name": "logic",
                "value": "",
                "type": "query",
                "description": "Logical combination when both prop1 and prop2 are provided"
              },
              {
                "name": "prop2",
                "value": "",
                "type": "query",
                "description": "Optional second field to filter"
              },
              {
                "name": "op2",
                "value": "",
                "type": "query",
                "description": "Operator for prop2"
              },
              {
                "name": "value2",
                "value": "",
                "type": "query",
                "description": "Value for prop2 (comma-separated values for in/nin or between)"
              },
              {
                "name": "page_size",
                "value": "",
                "type": "query",
                "description": "Number of items per page (max 100)"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Page number (1-based)"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Sort order for results"
              },
              {
                "name": "include_archived",
                "value": "",
                "type": "query",
                "description": "Whether to include archived (inactive) records in the response. By default only active records are returned."
              }
            ]
          },
          "docs": "Search projects using up to two filters (prop1/op1/value1 and optionally prop2/op2/value2), combined with `logic` (AND/OR).\n\nProperties:\n- `propX` can be a standard field (e.g., `status`, `title`, `city`, `type`, `accountId`, etc.) or a custom property key name.\n- Use the `property key` from your company settings.\n- Filter by parent account with `accountId`. `clientId` is accepted as a deprecated alias for backwards compatibility.\n\nOperators (`opX`):\n- Equality: `eq`, `neq`\n- Numeric/datetime co"
        },
        {
          "info": {
            "name": "Get Project",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/projects/:projectId",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "projectId",
                "value": "",
                "type": "path",
                "description": "Project identifier"
              },
              {
                "name": "include_virtual_properties",
                "value": "",
                "type": "query",
                "description": "Whether to include virtual properties in the response. Defaults to false unless explicitly set to true."
              },
              {
                "name": "include_archived",
                "value": "",
                "type": "query",
                "description": "Whether to include archived (inactive) records in the response. By default only active records are returned."
              }
            ]
          },
          "docs": "Retrieve a specific project by ID.\n\n**Note:** If the project has no `title` (empty or whitespace-only), the response returns the parent account's `title` instead. The stored value is not modified — this is a read-time fallback only.\n"
        },
        {
          "info": {
            "name": "Update Project",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.coperniq.io/v1/projects/:projectId",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "projectId",
                "value": "",
                "type": "path",
                "description": "Project identifier"
              },
              {
                "name": "allow_new_options",
                "value": "",
                "type": "query",
                "description": "Whether to allow creation of new dropdown options during record creation"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing project. Supports partial updates.\n\nUpdatable fields:\n- Standard fields (value, size, status, etc.)\n- Workflow fields (workflowId, phaseId)\n- Contact information (primaryEmail, primaryPhone)\n- Contacts (contact IDs only, no name, email, phone, etc.)\n- Custom fields (through custom object)\n\nNote: Updates are atomic - either all fields update or none do.\n\n> **Changing account association is not supported via update.** To move a project to a different account, delete and re-creat"
        },
        {
          "info": {
            "name": "Delete Project",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.coperniq.io/v1/projects/:projectId",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "projectId",
                "value": "",
                "type": "path",
                "description": "Project identifier"
              }
            ]
          },
          "docs": "Delete a specific project by ID"
        }
      ]
    }
  ],
  "bundled": true
}