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

# Set a workspace's budget

> Sets or removes a workspace's monthly budget in dollars (0 to 1,000,000; `null` removes it). It covers intent leads, search results and website visitors together and starts again each billing month. Once it's used, the workspace's exports stop at what's left and its websites pause until next month; the workspace and your organization get an email. `PATCH` and `POST` do the same.

**Admin key required.** Standard keys get `403 admin_key_required`.



## OpenAPI

````yaml /api-reference/openapi.json put /api/v1/workspaces/{id}/limits
openapi: 3.1.0
info:
  title: Intent Leads API
  version: '1.0'
  description: >-
    The Intent Leads API finds B2B people actively researching the topics you
    sell into, and exports them with contact details into your own tools.


    **Authentication.** Send an API key as a bearer token: `Authorization:
    Bearer il_live_…`. Standard keys work with everything except billing, team
    and key management, which need an admin key.


    **Organizations and workspaces.** An organization holds the balance,
    invoices and people; lanes, leads, exports, lists, websites and webhooks
    live in its workspaces. A workspace key works in its workspace. An
    organization key manages workspaces, billing and people, and works in any of
    its workspaces with the header `Intent-Leads-Workspace: <workspace id>`.


    **What costs money.** Only `POST /api/v1/exports` with `"dry_run": false`
    spends your [balance](/guides/billing) (and website visitors as they're
    identified). Quotes, counts, checks, estimates, samples and re-downloads are
    free.


    **Errors.** Every error is JSON: `{"error": "code", "message":
    "Plain-English explanation"}`. Codes are stable; messages may change.


    **Conventions.** JSON by default. Dates are `YYYY-MM-DD` and timestamps ISO
    8601, all in UTC. Lane codes (`L1`) are case-insensitive.
servers:
  - url: https://intentleads.si
security:
  - bearerAuth: []
tags:
  - name: Exports
    description: Quote (free) and buy new people from your lanes, then download them.
  - name: Leads
    description: Pull and re-download the leads you've exported, and list deliveries.
  - name: Lanes
    description: >-
      Create, inspect and tune lanes: keywords plus the companies and roles you
      want.
  - name: Topics
    description: >-
      Topics we already track: live at once, with history. Use them before
      adding new keywords.
  - name: Keywords
    description: >-
      Add and remove a lane's keywords: existing topics, or new ones approved as
      their own topic.
  - name: Checks
    description: >-
      Free lane checks that size every filter step over 14 days, plus quick
      topic signals.
  - name: Company list
    description: >-
      The target-company list your lanes can narrow to or use instead of
      industries.
  - name: Exclusions
    description: Companies and people left out of every lane, before anything is bought.
  - name: Suppressions
    description: >-
      People you exported who later asked to be removed, by API or pushed to
      your webhook.
  - name: Webhooks
    description: >-
      Endpoints that receive events as they happen (removals, website visitors),
      signed, each with its own events, tests and delivery log.
  - name: Websites
    description: Identify the people who visit your websites.
  - name: Billing
    description: >-
      Your prepaid balance, prices and cost estimates (any key); top-ups and the
      monthly top-up (admin keys).
  - name: Team
    description: Members and invite links. Admin keys only.
  - name: Workspaces
    description: >-
      One workspace per client, all paid from your balance, with an optional
      monthly budget each; hand one over to the client.
  - name: API keys
    description: Create, rename, rotate and revoke API keys. Admin keys only.
  - name: Account
    description: Check which organization a key belongs to, and rename it.
  - name: Reference
    description: Valid values for lane filters.
  - name: Activity
    description: A feed of changes and events in your organization.
paths:
  /api/v1/workspaces/{id}/limits:
    put:
      tags:
        - Workspaces
      summary: Set a workspace's budget
      description: >-
        Sets or removes a workspace's monthly budget in dollars (0 to 1,000,000;
        `null` removes it). It covers intent leads, search results and website
        visitors together and starts again each billing month. Once it's used,
        the workspace's exports stop at what's left and its websites pause until
        next month; the workspace and your organization get an email. `PATCH`
        and `POST` do the same.


        **Admin key required.** Standard keys get `403 admin_key_required`.
      operationId: setWorkspaceBudget
      parameters:
        - name: id
          in: path
          required: true
          description: The workspace id.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                budget_usd:
                  type:
                    - number
                    - 'null'
                  description: Dollars per billing month, or null for no budget.
              required:
                - budget_usd
            example:
              budget_usd: 500
      responses:
        '200':
          description: The budget now.
          content:
            application/json:
              schema:
                type: object
                properties:
                  workspace:
                    type: string
                    format: uuid
                    description: The workspace id.
                  budget_usd:
                    type:
                      - number
                      - 'null'
                    description: The monthly budget in dollars, or null for none.
                  spent_usd:
                    type: number
                    description: Charged to the workspace this billing month.
                  held_usd:
                    type: number
                    description: Held for its exports still running, until they're charged.
                  left_usd:
                    type:
                      - number
                      - 'null'
                    description: >-
                      budget − spent − held (never below 0), or null when
                      there's no budget.
                  note:
                    type: string
                required:
                  - workspace
                  - budget_usd
                  - spent_usd
                  - held_usd
                  - left_usd
                  - note
              example:
                workspace: 6f1d2c3b-4a5e-4f60-8172-93a4b5c6d7e8
                budget_usd: 500
                spent_usd: 43
                held_usd: 0
                left_usd: 457
                note: >-
                  Dollars per billing month, across intent leads, search results
                  and website visitors. budget_usd null means no budget.
        '400':
          description: The budget isn't valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalid_budget:
                  value:
                    error: invalid_budget
                    message: >-
                      budget_usd must be a number of dollars from 0 to
                      1,000,000, or null for no budget.
                budget_required:
                  value:
                    error: budget_required
                    message: >-
                      Send {"budget_usd": 500}, or {"budget_usd": null} for no
                      budget.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AdminKeyRequired'
        '404':
          description: Not one of your workspaces.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                not_your_workspace:
                  value:
                    error: not_your_workspace
                    message: That workspace isn't one of this organization's.
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          example: lane_not_found
          description: Stable machine-readable code, e.g. `lane_not_found`.
        message:
          type: string
          example: No lane L9.
          description: Plain-English explanation you can show to a person.
      required:
        - error
        - message
      description: Every error has this shape.
  responses:
    Unauthorized:
      description: Missing, malformed, unknown or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            unauthorized:
              value:
                error: unauthorized
                message: 'Send a valid API key as: Authorization: Bearer il_live_…'
    AdminKeyRequired:
      description: This endpoint needs an admin key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            admin_key_required:
              value:
                error: admin_key_required
                message: >-
                  This needs an admin API key. Owners create one under Settings
                  → API keys.
    InternalError:
      description: >-
        Unexpected server error. Safe to retry reads; retry an export only with
        the same `idempotency_key`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            internal_error:
              value:
                error: internal_error
                message: Something went wrong. Try again.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: il_live_…
      description: >-
        An Intent Leads API key, e.g. `il_live_` followed by 32 letters and
        digits. Create one on the API and CLI page of the dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.