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

# Update knowledge source settings

> Store a source crawl priority and/or recrawl cadence. Priority is a JSON integer from 0 through 3. `recrawl_interval_hours` is a JSON integer from 24 through 8760 or `null` to clear it. Numeric strings, fractional numbers, empty recognized changes, and out-of-range values return 422. Partial changes preserve the other setting and removal flags; each changed field writes one internal source event, while repeating the same values writes none. This stores cadence only; it does not enable scheduled paid crawling or start a crawl. Requires an authenticated administrator, the account’s `orchestration_studio` feature, and the default-off `KNOWLEDGE_SOURCE_SETTINGS_ENABLED` deployment switch.



## OpenAPI

````yaml /api-reference/openapi.json patch /api/v1/accounts/{account_id}/knowledge_sources/{id}/settings
openapi: 3.0.4
info:
  title: Tied API
  description: >-
    The Tied REST API. Three families of endpoint, each with its own credential:
    **Application** for everything inside an account, **Platform** for
    provisioning accounts and users, and **Client** for acting as a contact from
    your own surface.
  version: 1.1.0
  termsOfService: https://tied.com/legal
  contact:
    email: hello@tied.com
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://app.tied.com
    description: Tied cloud
security: []
tags:
  - name: Account AgentBots
    description: Account-specific Agent Bots
  - name: Agents
    description: Agent management APIs
  - name: Canned Responses
    description: Pre-defined responses for common queries
  - name: Contacts
    description: Contact management APIs
  - name: Contact Labels
    description: Manage contact labels
  - name: Conversation Assignments
    description: Manage conversation assignments
  - name: Conversation Labels
    description: Manage conversation labels
  - name: Conversations
    description: Conversation management APIs
  - name: Custom Attributes
    description: Custom fields for contacts and conversations
  - name: Custom Filters
    description: Saved filters for conversations
  - name: Inboxes
    description: Communication channels setup
  - name: Integrations
    description: Third-party integrations
  - name: Messages
    description: Message management APIs
  - name: Profile
    description: User profile APIs
  - name: Reports
    description: Analytics and reporting APIs
  - name: Teams
    description: Team management APIs
  - name: Webhooks
    description: Event notification webhooks
  - name: Automation Rule
    description: Workflow automation rules
  - name: Help Center
    description: Knowledge base management
  - name: Contacts API
    description: Public contact APIs
  - name: Conversations API
    description: Public conversation APIs
  - name: Messages API
    description: Public message APIs
  - name: CSAT Survey Page
    description: Customer satisfaction survey
  - name: Account
    description: >-
      The authenticated user's own account — read and update account settings.
      Distinct from the Platform family's **Accounts**, which provisions
      accounts across an installation.
  - name: Audit Logs
    description: Read the account's audit trail
  - name: Inbox API
    description: Public inbox lookup by channel identifier
  - name: Labels
    description: >-
      Create and manage the account's labels. Applying one to a conversation or
      contact is a separate endpoint under those resources.
  - name: Macros
    description: >-
      Saved multi-step actions an agent — or an integration — can run against
      one or more conversations.
  - name: Campaigns
    description: Ongoing website campaigns and one-off SMS and WhatsApp sends.
  - name: Contact Notes
    description: Internal notes on a contact. Never visible to the contact.
  - name: Help Center Categories
    description: Categories group a portal's articles, one tree per allowed locale.
  - name: Help Center Articles
    description: The articles a portal publishes, and their draft and archived states.
  - name: Summary Reports
    description: Per-agent, per-team, per-inbox and per-label totals for a period, as JSON.
  - name: Live Reports
    description: Right-now queue counts. No date range — these describe the present.
  - name: CSAT
    description: >-
      The satisfaction ratings contacts have submitted, and the metrics computed
      from them.
  - name: Notifications
    description: >-
      The per-user notification feed, its read and snooze state, and the
      settings that decide what lands in it.
  - name: Conversation Participants
    description: >-
      The agents watching a conversation. Participants get notified about it
      without being assigned to it.
  - name: Draft Messages
    description: >-
      The unsent reply held for a conversation. Stored in Redis, one per
      conversation.
  - name: Search
    description: >-
      One search service across conversations, contacts, messages and Help
      Center articles.
  - name: Dashboard Apps
    description: Embedded pages that appear as a tab beside a conversation.
  - name: Assignment Policies
    description: How conversations are handed out, and which inbox uses which policy.
  - name: Files
    description: Storing a file so another endpoint can attach it.
  - name: Bot Flows
    description: >-
      Scripted conversation flows, their versions, and the publish and rollback
      that move between them.
  - name: Billing
    description: >-
      Credit balance, usage, invoices, spend controls and the provider-hosted
      payment flows.
  - name: AMB Templates
    description: >-
      Saved Apple Messages primitive payloads an agent can reuse from the
      composer.
  - name: AMB Onboarding
    description: The in-flight Apple Messages for Business registration for an account.
  - name: Widget Session
    description: Starting a widget session and reading the visitor it belongs to.
  - name: Widget Conversation
    description: The visitor's conversation and its messages.
  - name: Widget Context
    description: Campaigns, agents, labels, events and uploads for a widget session.
  - name: CSAT Survey
    description: The public, unauthenticated survey a contact answers from a link.
  - name: Workspace
    description: Scheduling and cancelling deletion of the whole workspace.
  - name: Widget Integrations
    description: Provider actions available to a visitor session in its own conversation.
  - name: Orchestration Studio
    description: >-
      Administrator-only read APIs for Orchestration Studio cases and knowledge
      sources.
  - name: Topic Analytics
    description: Account Topics readiness, labeling health and usage aggregates.
  - name: Analytics V2
    description: >-
      Account-scoped metrics, anonymized benchmarks and audited conversation
      drilldown.
  - name: Knowledge proposals
    description: Administrator-only proposal review and revision decisions.
  - name: Model settings
    description: Administrator-only routing profiles and Tied-hosted catalogue.
  - name: Quality Review
    description: Current quality review queue metadata and manual work state.
paths:
  /api/v1/accounts/{account_id}/knowledge_sources/{id}/settings:
    patch:
      tags:
        - Orchestration Studio
      summary: Update knowledge source settings
      description: >-
        Store a source crawl priority and/or recrawl cadence. Priority is a JSON
        integer from 0 through 3. `recrawl_interval_hours` is a JSON integer
        from 24 through 8760 or `null` to clear it. Numeric strings, fractional
        numbers, empty recognized changes, and out-of-range values return 422.
        Partial changes preserve the other setting and removal flags; each
        changed field writes one internal source event, while repeating the same
        values writes none. This stores cadence only; it does not enable
        scheduled paid crawling or start a crawl. Requires an authenticated
        administrator, the account’s `orchestration_studio` feature, and the
        default-off `KNOWLEDGE_SOURCE_SETTINGS_ENABLED` deployment switch.
      operationId: update_knowledge_source_settings
      parameters:
        - name: account_id
          in: path
          required: true
          description: ID of the account in which the source crawl is resolved.
          schema:
            type: integer
        - name: id
          in: path
          required: true
          description: ID of a crawl in this account representing the source URL.
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/knowledge_source_settings_request'
            examples:
              update_both_settings:
                summary: Set priority and cadence.
                value:
                  priority: 2
                  recrawl_interval_hours: 48
              clear_cadence:
                summary: Clear cadence for manual crawls only.
                value:
                  recrawl_interval_hours: null
      responses:
        '200':
          description: >-
            Success; state and audit details are described on the published
            page.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledge_source_settings_response'
              examples:
                default:
                  summary: Actual 200 response for default.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    source_url: https://docs.example.test/guide
                    priority: 2
                    recrawl_interval_hours: 48
                repeat_settings:
                  summary: Actual 200 response for repeat settings.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    source_url: https://docs.example.test/guide
                    priority: 2
                    recrawl_interval_hours: 48
        '400':
          description: The request supplied multiple credential types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orchestration_studio_credential_conflict'
              examples:
                multiple_credentials:
                  summary: Actual 400 response for multiple credentials.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error:
                      code: multiple_credentials
        '401':
          description: Authentication or account membership is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orchestration_studio_unauthorized'
              examples:
                foreign_membership:
                  summary: Actual 401 response for foreign membership.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: You are not authorized to access this account
                suspended_account:
                  summary: Actual 401 response for suspended account.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: Account is suspended
                unauthenticated:
                  summary: Actual 401 response for unauthenticated.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    errors:
                      - You need to sign in or sign up before continuing.
        '402':
          description: A trial-locked account cannot perform writes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledge_source_trial_locked_error'
              examples:
                trial_locked:
                  summary: Actual 402 response for trial locked.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: trial_expired_locked
                    message: >-
                      This workspace trial has ended. Restore billing from the
                      billing page to continue.
        '403':
          description: The caller is not an account administrator.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
              examples:
                agent:
                  summary: Actual 403 response for agent.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: You are not authorized to do this action
        '404':
          description: >-
            The account feature or operation switch is off, or the
            source/document is outside this account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
              examples:
                feature_off:
                  summary: Actual 404 response for feature off.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: Resource could not be found
                foreign_source:
                  summary: Actual 404 response for foreign source.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: Resource could not be found
                switch_off:
                  summary: Actual 404 response for switch off.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: Resource could not be found
        '422':
          description: A recognized input is missing or has an invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
              examples:
                empty_settings:
                  summary: Actual 422 response for empty settings.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: Send priority, recrawl_interval_hours or both
                invalid_settings:
                  summary: Actual 422 response for invalid settings.
                  description: >-
                    Captured from an actual synthetic Rails request;
                    authentication headers and request bodies were excluded.
                  value:
                    error: >-
                      priority must be a whole number from 0 to 3, and
                      recrawl_interval_hours null or a whole number of hours
                      from 24 to 8760
      security:
        - userApiKey: []
components:
  schemas:
    knowledge_source_settings_request:
      type: object
      description: >-
        At least one setting is required. Unknown keys are ignored by the
        current controller.
      properties:
        priority:
          type: integer
          minimum: 0
          maximum: 3
          description: JSON integer crawl priority.
        recrawl_interval_hours:
          type: integer
          nullable: true
          minimum: 24
          maximum: 8760
          description: JSON integer hours, or null to clear the cadence.
      anyOf:
        - required:
            - priority
        - required:
            - recrawl_interval_hours
    knowledge_source_settings_response:
      type: object
      description: >-
        Persisted source settings; cadence does not schedule paid crawls by
        itself.
      properties:
        source_url:
          type: string
          description: Untrusted source URL.
        priority:
          type: integer
          minimum: 0
          maximum: 3
          description: Persisted crawl priority.
        recrawl_interval_hours:
          type: integer
          nullable: true
          minimum: 24
          maximum: 8760
          description: Persisted cadence in hours, or null for manual crawls only.
      required:
        - source_url
        - priority
        - recrawl_interval_hours
      additionalProperties: false
    orchestration_studio_credential_conflict:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - multiple_credentials
              description: Conflicting credential types were supplied.
          required:
            - code
          description: The authentication error.
      required:
        - error
    orchestration_studio_unauthorized:
      description: >-
        Anonymous requests return errors; an outsider or account bot returns
        error.
      oneOf:
        - type: object
          properties:
            errors:
              type: array
              items:
                type: string
              description: Errors for this response.
          required:
            - errors
        - $ref: '#/components/schemas/error_message'
    knowledge_source_trial_locked_error:
      type: object
      description: The shared HTTP refusal for writes to a trial-locked account.
      properties:
        error:
          type: string
          enum:
            - trial_expired_locked
          description: Stable trial lock state code.
        message:
          type: string
          description: Human-readable billing restoration guidance.
      required:
        - error
        - message
      additionalProperties: false
    error_message:
      type: object
      description: >-
        The shape returned by `render_unauthorized`, `render_not_found_error`
        and `render_could_not_create_error`.
      properties:
        error:
          type: string
          description: A single human-readable message.
          example: Resource could not be found
      required:
        - error
  securitySchemes:
    userApiKey:
      type: apiKey
      in: header
      name: api_access_token
      description: >-
        This token can be obtained by visiting the profile page or via rails
        console. Provides access to  endpoints based on the user permissions
        levels. This token can be saved by an external system when user is
        created via API, to perform activities on behalf of the user.

````

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