> ## Documentation Index
> Fetch the complete documentation index at: https://chariow.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# List Pulses

> Retrieve all webhook notification pulses for your store

Retrieves a cursor-paginated list of all pulse webhooks configured for your store. Pulses are webhook notifications sent to your specified endpoints when specific events occur, such as successful sales, abandoned sales, or license activations.

## Query Parameters

<ParamField query="per_page" type="integer" default="15">
  Number of pulses to return per page (maximum 100)
</ParamField>

<ParamField query="cursor" type="string">
  Cursor for pagination. Use the `next_cursor` from the previous response to retrieve the next page.
</ParamField>

<ParamField query="search" type="string">
  Search pulses by URL, public ID, or trigger event names
</ParamField>

## Response

<ResponseField name="data" type="object">
  <Expandable title="properties">
    <ResponseField name="data" type="array">
      Array of pulse objects

      <Expandable title="pulse object">
        <ResponseField name="id" type="string">
          Unique pulse identifier (e.g., `pulse_abc123xyz`)
        </ResponseField>

        <ResponseField name="url" type="string">
          Webhook URL where notifications are sent
        </ResponseField>

        <ResponseField name="is_enabled" type="boolean">
          Whether the pulse is currently active
        </ResponseField>

        <ResponseField name="source" type="object">
          Source information about how the pulse was created

          <Expandable title="source object">
            <ResponseField name="value" type="string">
              Source value: `manual`, `zapier`, `make`, or `system`
            </ResponseField>

            <ResponseField name="label" type="string">
              Human-readable source label
            </ResponseField>

            <ResponseField name="description" type="string">
              Description of the source
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="triggers" type="array">
          Array of trigger event objects that will activate this pulse

          <Expandable title="trigger object">
            <ResponseField name="value" type="string">
              Trigger event value (e.g., `successful_sale`, `license_activated`)
            </ResponseField>

            <ResponseField name="label" type="string">
              Human-readable label
            </ResponseField>

            <ResponseField name="description" type="string">
              Description of when this trigger fires
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="products" type="array">
          Array of products this pulse is limited to. Empty array means all products will trigger this pulse.

          <Expandable title="product object">
            <ResponseField name="id" type="string">
              Product identifier
            </ResponseField>

            <ResponseField name="name" type="string">
              Product name
            </ResponseField>

            <ResponseField name="slug" type="string">
              Product slug
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="store" type="object">
          Store information

          <Expandable title="store object">
            <ResponseField name="id" type="string">
              Store identifier
            </ResponseField>

            <ResponseField name="name" type="string">
              Store name
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="can_delete" type="boolean">
          Whether the pulse can be deleted. System-created pulses cannot be deleted.
        </ResponseField>

        <ResponseField name="created_at" type="string">
          ISO 8601 timestamp with timezone
        </ResponseField>

        <ResponseField name="updated_at" type="string">
          ISO 8601 timestamp with timezone
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="pagination" type="object">
      Cursor pagination metadata

      <Expandable title="pagination object">
        <ResponseField name="next_cursor" type="string|null">
          Cursor for the next page, or null if no more pages
        </ResponseField>

        <ResponseField name="prev_cursor" type="string|null">
          Cursor for the previous page, or null if on first page
        </ResponseField>

        <ResponseField name="has_more" type="boolean">
          Whether there are more items to fetch
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.chariow.com/v1/pulses?per_page=20&search=webhook" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.chariow.com/v1/pulses?per_page=20&search=webhook', {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  });
  const data = await response.json();
  ```

  ```php PHP theme={null}
  $ch = curl_init('https://api.chariow.com/v1/pulses?per_page=20&search=webhook');
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      'Authorization: Bearer YOUR_API_KEY'
  ]);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $response = curl_exec($ch);
  $data = json_decode($response, true);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "message": "success",
    "data": {
      "data": [
        {
          "id": "pulse_abc123xyz",
          "url": "https://example.com/webhooks/chariow",
          "is_enabled": true,
          "source": {
            "value": "manual",
            "label": "Manual",
            "description": "Created manually by user"
          },
          "triggers": [
            {
              "value": "successful_sale",
              "label": "Successful Sale",
              "description": "Triggers when a sale is successful."
            },
            {
              "value": "license_activated",
              "label": "License Activated",
              "description": "Triggers when a license is activated."
            }
          ],
          "products": [],
          "store": {
            "id": "str_xyz789",
            "name": "My Digital Store"
          },
          "can_delete": true,
          "created_at": "2025-01-15T10:30:00+00:00",
          "updated_at": "2025-01-15T10:30:00+00:00"
        },
        {
          "id": "pulse_def456abc",
          "url": "https://hooks.zapier.com/hooks/catch/12345/abcde",
          "is_enabled": true,
          "source": {
            "value": "zapier",
            "label": "Zapier",
            "description": "Created via Zapier integration"
          },
          "triggers": [
            {
              "value": "successful_sale",
              "label": "Successful Sale",
              "description": "Triggers when a sale is successful."
            }
          ],
          "products": [
            {
              "id": "prd_xyz789",
              "name": "Premium Course",
              "slug": "premium-course"
            }
          ],
          "store": {
            "id": "str_xyz789",
            "name": "My Digital Store"
          },
          "can_delete": false,
          "created_at": "2025-01-10T08:00:00+00:00",
          "updated_at": "2025-01-10T08:00:00+00:00"
        }
      ],
      "pagination": {
        "next_cursor": "eyJpZCI6NTB9",
        "prev_cursor": null,
        "has_more": true
      }
    },
    "errors": []
  }
  ```
</ResponseExample>
