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

# Update tracked domains/pages or the monthly credit limit

> Update the tracked domains and page paths and/or the monthly deanonymization credit cap. Send at least one field. `domains` REPLACES the stored list (an empty array stops tracking) and `trackedPages` must be sent together with `domains`, because both ride one internal write that always sets the domain list. `monthlyCreditLimit` must not exceed the plan's credit allowance; send null to remove the cap. The response is the full tracking state after the write, identical to GET /business/website-tracking. Rate limit: 30 requests per minute, 2000 per day.

Errors:
- `404` `WEBSITE_TRACKING_NOT_SET_UP` — This account has no website-tracking record (no Webtraffic entry, or the caller resolves to no team owner) — set website tracking up in the app first.
- `422` `VALIDATION_FAILED` — No field sent, `trackedPages` without `domains`, a value outside its bounds, or a credit cap Webtraffic rejected as not a whole non-negative number.
- `422` `CREDIT_LIMIT_EXCEEDS_PLAN` — The requested monthly credit limit is higher than the plan's credit allowance.
- `429` `RATE_LIMITED` — Per-user quota for this endpoint family exceeded (30 per minute, 2000 per day); retry after the Retry-After / RateLimit-Reset seconds.

Requires one of the following token scopes: intent.



## OpenAPI

````yaml /openapi.json patch /business/website-tracking
openapi: 3.1.0
info:
  title: Fuse Business API
  version: 1.0.0
  description: >-
    External API for lists, campaigns, prospect search and contacts.
    Authenticate with your API token as HTTP Basic. All paths are under /api/v1.
servers:
  - url: https://api.tryfuse.ai/api/v1
    description: Production
security:
  - basicAuth: []
tags:
  - name: Lists
  - name: Custom columns
  - name: Smart columns
  - name: Exports
  - name: Campaigns
  - name: Knowledge hubs
  - name: Analytics
  - name: Website intent
  - name: Account
  - name: Prospect search
  - name: Campaign steps
  - name: Scheduled sends
  - name: Campaign templates
  - name: Agents
  - name: Research
  - name: Company search
  - name: Saved searches
  - name: Folders
  - name: Contacts
paths:
  /business/website-tracking:
    patch:
      tags:
        - Website intent
      summary: Update tracked domains/pages or the monthly credit limit
      description: >-
        Update the tracked domains and page paths and/or the monthly
        deanonymization credit cap. Send at least one field. `domains` REPLACES
        the stored list (an empty array stops tracking) and `trackedPages` must
        be sent together with `domains`, because both ride one internal write
        that always sets the domain list. `monthlyCreditLimit` must not exceed
        the plan's credit allowance; send null to remove the cap. The response
        is the full tracking state after the write, identical to GET
        /business/website-tracking. Rate limit: 30 requests per minute, 2000 per
        day.


        Errors:

        - `404` `WEBSITE_TRACKING_NOT_SET_UP` — This account has no
        website-tracking record (no Webtraffic entry, or the caller resolves to
        no team owner) — set website tracking up in the app first.

        - `422` `VALIDATION_FAILED` — No field sent, `trackedPages` without
        `domains`, a value outside its bounds, or a credit cap Webtraffic
        rejected as not a whole non-negative number.

        - `422` `CREDIT_LIMIT_EXCEEDS_PLAN` — The requested monthly credit limit
        is higher than the plan's credit allowance.

        - `429` `RATE_LIMITED` — Per-user quota for this endpoint family
        exceeded (30 per minute, 2000 per day); retry after the Retry-After /
        RateLimit-Reset seconds.


        Requires one of the following token scopes: intent.
      operationId: updateWebsiteTracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domains:
                  type: array
                  items:
                    type: string
                    minLength: 3
                    maxLength: 255
                  minItems: 0
                  maxItems: 50
                  description: >-
                    Replacement list of the website domains you have installed
                    the tracking tag on, 0 to 50 entries of 3 to 255 characters.
                    You choose the values — there is no vocabulary endpoint;
                    read the current list from `GET /business/website-tracking`
                    (`tracking.domains`) and send it back with your edits,
                    because the whole array replaces the stored list on every
                    call and an omitted entry is dropped. Use the canonical form
                    the app writes: a bare lower-case hostname with no scheme,
                    path or port and with a leading `www.` removed, for example
                    `brightpay.com` rather than
                    `https://www.brightpay.com/pricing`. Entries are
                    whitespace-trimmed by this API; case is preserved and
                    duplicates are kept, so any other spelling is accepted and
                    simply sits in the list unused. Entries do not combine into
                    a query: this list records where the tag is installed and
                    does not gate collection — visits are attributed by the
                    `puid` inside the tag script, so editing or emptying this
                    list neither starts nor stops tracking, only adding or
                    removing the script from the page does.
                trackedPages:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 2048
                  maxItems: 200
                  description: >-
                    Replacement list of the page labels you want reported
                    separately, up to 200 entries of 1 to 2048 characters. These
                    are free-text names you choose, not URL paths: the app
                    writes short lower-case labels such as `pricing`, `home` or
                    `product`, and the label is echoed back verbatim as `page`
                    on each visitor row. There is no vocabulary endpoint; read
                    the current list from `GET /business/website-tracking`
                    (`tracking.trackedPages`) and send it back with your edits,
                    because the whole array replaces the stored list on every
                    call and an omitted entry is dropped. Entries are
                    whitespace-trimmed by this API; case is preserved and
                    duplicates are kept. Entries do not combine into a query:
                    each names one page reported on its own, and a visitor row
                    carries at most one label. A label only yields data once the
                    matching per-page tag script is installed on that page (the
                    label is embedded in that script's `puid`), so adding a name
                    here on its own is accepted and reports nothing. Must be
                    sent together with `domains` because both ride one internal
                    write that always replaces the domain list.
                monthlyCreditLimit:
                  type:
                    - integer
                    - 'null'
                  minimum: 0
                  maximum: 10000000
                  description: >-
                    Cap on the credits spent deanonymising visitors in one
                    billing period: any whole number of credits from 0 to
                    10000000, or `null` to remove the cap and fall back to the
                    plan's own allowance. Not a vocabulary — every integer in
                    range is a legal value. A cap above the credits on your
                    active subscription is rejected with 422
                    `CREDIT_LIMIT_EXCEEDS_PLAN`; an account with no active
                    subscription is not checked against a plan. The counter it
                    caps (`tracking.credits.used`) resets at the start of each
                    billing period on monthly plans, and every 30 days or on
                    renewal on annual plans. `0` stops deanonymisation until the
                    cap is raised.
      responses:
        '200':
          description: Success
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                type: object
                properties:
                  tracking:
                    type: object
                    properties:
                      domains:
                        type: array
                        items:
                          type: string
                      trackedPages:
                        type: array
                        items:
                          type: string
                      script:
                        type:
                          - string
                          - 'null'
                      credits:
                        type: object
                        properties:
                          limit:
                            type:
                              - integer
                              - 'null'
                          used:
                            type: integer
                        required:
                          - limit
                          - used
                    required:
                      - domains
                      - trackedPages
                      - script
                      - credits
                required:
                  - tracking
              example:
                tracking:
                  domains:
                    - brightpay.com
                  trackedPages:
                    - pricing
                    - home
                    - product
                    - faq
                  script: >-
                    <script type="text/javascript"
                    src="https://a.usbrowserspeed.com/cs?pid=ddae2e0bce828a30a7b24f94f87290780f71120eaf9f11353f234c3bd86512d3&puid=%7B%22userId%22%3A%2268540f8bb55e99628170c757%22%2C%22env%22%3A%22dev%22%7D"></script>
                  credits:
                    limit: 5000
                    used: 1395
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - basicAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            doc_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Your API token (`af_…`) as the Basic-auth username, with an empty
        password.

````