{
  "opencollection": "1.0.0",
  "info": {
    "name": "Courier Audiences Providers API",
    "version": "1.0"
  },
  "items": [
    {
      "info": {
        "name": "Providers",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List providers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.courier.com/providers",
            "params": [
              {
                "name": "cursor",
                "value": "",
                "type": "query",
                "description": "Opaque cursor for fetching the next page."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List configured provider integrations for the current workspace. Supports cursor-based pagination."
        },
        {
          "info": {
            "name": "Create a provider",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.courier.com/providers",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new provider configuration. The `provider` field must be a known Courier provider key (see catalog)."
        },
        {
          "info": {
            "name": "List available provider types",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.courier.com/providers/catalog",
            "params": [
              {
                "name": "keys",
                "value": "",
                "type": "query",
                "description": "Comma-separated provider keys to filter by (e.g. `sendgrid,twilio`)."
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Case-insensitive substring match against the provider display name."
              },
              {
                "name": "channel",
                "value": "",
                "type": "query",
                "description": "Exact match (case-insensitive) against the provider channel taxonomy (e.g. `email`, `sms`, `push`)."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns the catalog of available provider types with their display names, descriptions, and configuration schema fields (snake_case, with `type` and `required`). Providers with no configurable schema return only `provider`, `name`, and `description`."
        },
        {
          "info": {
            "name": "Get a provider",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.courier.com/providers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "A unique identifier of the provider configuration."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Fetch a single provider configuration by ID."
        },
        {
          "info": {
            "name": "Update a provider",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.courier.com/providers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "A unique identifier of the provider configuration to update."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Replace an existing provider configuration. The `provider` key is required and determines which provider-specific settings schema is applied. All other fields are optional — omitted fields are cleared from the stored configuration (this is a full replacement, not a partial merge). Changing the provider type for an existing configuration is not supported."
        },
        {
          "info": {
            "name": "Delete a provider",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.courier.com/providers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "A unique identifier of the provider configuration to delete."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a provider configuration. Returns 409 if the provider is still referenced by routing or notifications."
        }
      ]
    }
  ],
  "bundled": true
}