{
  "info": {
    "name": "Qubit Notion API v1",
    "description": "Generated from the published OpenAPI contract. Set the baseUrl and apiKey variables, then run any request.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://qubitnotion.com/api/v1"
    },
    {
      "key": "apiKey",
      "value": "qn_sandbox_replace_me"
    }
  ],
  "item": [
    {
      "name": "Describe the key and the workspace it belongs to",
      "request": {
        "method": "GET",
        "description": "Describe the key and the workspace it belongs to\n\nScopes: account:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/me",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "me"
          ],
          "query": []
        }
      }
    },
    {
      "name": "Read the limits that apply to this key",
      "request": {
        "method": "GET",
        "description": "Read the limits that apply to this key\n\nEvery window that applies, what it is scoped to, and how much is left right now. Reading this consumes one request.\n\nScopes: account:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/limits",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "limits"
          ],
          "query": []
        }
      }
    },
    {
      "name": "List the dated versions inside v1",
      "request": {
        "method": "GET",
        "description": "List the dated versions inside v1\n\nWhich dated version is stable, which one is in preview, what changes between them, and which version answered this call.\n\nScopes: account:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/versions",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "versions"
          ],
          "query": []
        }
      }
    },
    {
      "name": "Trade an API key for a short-lived access token",
      "request": {
        "method": "POST",
        "description": "Trade an API key for a short-lived access token\n\nOAuth 2.0 client credentials. Send grant_type=client_credentials with your API key as client_secret, either in the body or as the password in HTTP basic auth. The token lasts one hour, carries the key's scopes or a subset you ask for in `scope`, and is accepted anywhere the key is. Every rule on the key still applies.",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{$guid}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/oauth/token",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "oauth",
            "token"
          ],
          "query": []
        },
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "List media plans",
      "request": {
        "method": "GET",
        "description": "List media plans\n\nScopes: plans:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/plans?",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "plans"
          ],
          "query": [
            {
              "key": "limit",
              "value": "",
              "description": "Rows per page, 1 to 200. Defaults to 50.",
              "disabled": true
            },
            {
              "key": "offset",
              "value": "",
              "description": "Rows to skip. Deprecated: it drifts when rows arrive between pages. Use `cursor`. Ignored when `cursor` is sent.",
              "disabled": true
            },
            {
              "key": "cursor",
              "value": "",
              "description": "Opaque keyset cursor from `meta.next_cursor` of the previous page. Preferred over `offset`: results stay stable while new rows arrive.",
              "disabled": true
            },
            {
              "key": "status",
              "value": "",
              "description": "Filter by plan status.",
              "disabled": true
            }
          ]
        }
      }
    },
    {
      "name": "List omni-channel campaigns",
      "request": {
        "method": "GET",
        "description": "List omni-channel campaigns\n\nScopes: plans:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/campaigns?",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "campaigns"
          ],
          "query": [
            {
              "key": "limit",
              "value": "",
              "description": "Rows per page, 1 to 200. Defaults to 50.",
              "disabled": true
            },
            {
              "key": "offset",
              "value": "",
              "description": "Rows to skip. Deprecated: it drifts when rows arrive between pages. Use `cursor`. Ignored when `cursor` is sent.",
              "disabled": true
            },
            {
              "key": "cursor",
              "value": "",
              "description": "Opaque keyset cursor from `meta.next_cursor` of the previous page. Preferred over `offset`: results stay stable while new rows arrive.",
              "disabled": true
            }
          ]
        }
      }
    },
    {
      "name": "List research studies",
      "request": {
        "method": "GET",
        "description": "List research studies\n\nScopes: research:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/studies?",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "studies"
          ],
          "query": [
            {
              "key": "limit",
              "value": "",
              "description": "Rows per page, 1 to 200. Defaults to 50.",
              "disabled": true
            },
            {
              "key": "offset",
              "value": "",
              "description": "Rows to skip. Deprecated: it drifts when rows arrive between pages. Use `cursor`. Ignored when `cursor` is sent.",
              "disabled": true
            },
            {
              "key": "cursor",
              "value": "",
              "description": "Opaque keyset cursor from `meta.next_cursor` of the previous page. Preferred over `offset`: results stay stable while new rows arrive.",
              "disabled": true
            }
          ]
        }
      }
    },
    {
      "name": "List research findings",
      "request": {
        "method": "GET",
        "description": "List research findings\n\nScopes: research:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/findings?",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "findings"
          ],
          "query": [
            {
              "key": "limit",
              "value": "",
              "description": "Rows per page, 1 to 200. Defaults to 50.",
              "disabled": true
            },
            {
              "key": "offset",
              "value": "",
              "description": "Rows to skip. Deprecated: it drifts when rows arrive between pages. Use `cursor`. Ignored when `cursor` is sent.",
              "disabled": true
            },
            {
              "key": "cursor",
              "value": "",
              "description": "Opaque keyset cursor from `meta.next_cursor` of the previous page. Preferred over `offset`: results stay stable while new rows arrive.",
              "disabled": true
            },
            {
              "key": "study_id",
              "value": "",
              "description": "Study id, prefixed (`std_…`) or raw UUID.",
              "disabled": true
            }
          ]
        }
      }
    },
    {
      "name": "Send server-side events into a PixelBridge pixel",
      "request": {
        "method": "POST",
        "description": "Send server-side events into a PixelBridge pixel\n\nUp to 50 events per call. `event_id` deduplicates against events already recorded for the pixel, so a browser pixel and a server call reporting the same action collapse onto one row. Email and phone are hashed on receipt and the raw value is never stored. Send an Idempotency-Key header to make retries safe.\n\nScopes: events:write",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{$guid}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/events",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "events"
          ],
          "query": []
        },
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "List daily PixelBridge rollups",
      "request": {
        "method": "GET",
        "description": "List daily PixelBridge rollups\n\nScopes: pixel:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/pixel-rollups?",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "pixel-rollups"
          ],
          "query": [
            {
              "key": "limit",
              "value": "",
              "description": "Rows per page, 1 to 200. Defaults to 50.",
              "disabled": true
            },
            {
              "key": "offset",
              "value": "",
              "description": "Rows to skip. Deprecated: it drifts when rows arrive between pages. Use `cursor`. Ignored when `cursor` is sent.",
              "disabled": true
            },
            {
              "key": "cursor",
              "value": "",
              "description": "Opaque keyset cursor from `meta.next_cursor` of the previous page. Preferred over `offset`: results stay stable while new rows arrive.",
              "disabled": true
            },
            {
              "key": "from",
              "value": "",
              "description": "",
              "disabled": true
            },
            {
              "key": "to",
              "value": "",
              "description": "",
              "disabled": true
            }
          ]
        }
      }
    },
    {
      "name": "Import delivered performance into a media plan",
      "request": {
        "method": "POST",
        "description": "Import delivered performance into a media plan\n\nUp to 500 daily rows per call. A row is keyed on media plan, line item and date, so re-sending a day overwrites it instead of double-counting: a nightly sync that re-states the last seven days is safe. Omit `line_item_id` for plan-level totals. Sandbox keys may only write to demo plans.\n\nScopes: actuals:write",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{$guid}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/imports/actuals",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "imports",
            "actuals"
          ],
          "query": []
        },
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "List webhook deliveries",
      "request": {
        "method": "GET",
        "description": "List webhook deliveries\n\nThe delivery log behind the inspector. Filter by event id, event type, status or endpoint. A sandbox key only sees sandbox deliveries, a live key only live ones.\n\nScopes: webhooks:read",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/webhook-deliveries?",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "webhook-deliveries"
          ],
          "query": [
            {
              "key": "event_id",
              "value": "",
              "description": "Stable event id. Retries and replays share it.",
              "disabled": true
            },
            {
              "key": "event_type",
              "value": "",
              "description": "",
              "disabled": true
            },
            {
              "key": "status",
              "value": "",
              "description": "",
              "disabled": true
            },
            {
              "key": "endpoint_id",
              "value": "",
              "description": "Endpoint id, prefixed (`whe_…`) or raw UUID.",
              "disabled": true
            },
            {
              "key": "limit",
              "value": "",
              "description": "",
              "disabled": true
            },
            {
              "key": "cursor",
              "value": "",
              "description": "",
              "disabled": true
            }
          ]
        }
      }
    },
    {
      "name": "Replay a webhook delivery",
      "request": {
        "method": "POST",
        "description": "Replay a webhook delivery\n\nSends the same payload again with the original event id, so your own deduplication still recognises it. The new attempt records the delivery it replayed.\n\nScopes: webhooks:write",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{$guid}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/webhook-deliveries/{id}/replay",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "webhook-deliveries",
            "{id}",
            "replay"
          ],
          "query": []
        }
      }
    }
  ]
}