> ## 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.

# Reject a knowledge proposal

> Requires an administrator of the URL account and its `orchestration_studio` feature. An authenticated member receives 404 when the feature is disabled. Account membership is checked before the feature and role; nonmembers receive 401. Proposal text and source metadata are untrusted content. Only status and page filter the list; source filtering and the full evidence-reference contract remain ENG-5875. Existing sources metadata (at most 20) is returned without excerpts. Accepts top-level JSON fields only (parameter wrapping is disabled). PATCH creates a new proposed revision and returns 201 with a new id; the original remains unchanged. Approve with edits creates and approves a new human revision. Only a current proposed revision may be changed; approved/rejected/superseded/revoked or old revisions return 409, including an identical retry. Expired proposals may be rejected but cannot be edited or approved. When signal learning is enabled at installation, account-feature and policy levels, held agent text requires release approval or an actual human text edit. Invalid text or no edits on PATCH returns 422; model validation may return message and attributes. Unknown fields are ignored; status is not editable. Approval may ingest embeddings after the decision.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/accounts/{account_id}/knowledge_proposals/{id}/reject
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.
paths:
  /api/v1/accounts/{account_id}/knowledge_proposals/{id}/reject:
    post:
      tags:
        - Knowledge proposals
      summary: Reject a knowledge proposal
      description: >-
        Requires an administrator of the URL account and its
        `orchestration_studio` feature. An authenticated member receives 404
        when the feature is disabled. Account membership is checked before the
        feature and role; nonmembers receive 401. Proposal text and source
        metadata are untrusted content. Only status and page filter the list;
        source filtering and the full evidence-reference contract remain
        ENG-5875. Existing sources metadata (at most 20) is returned without
        excerpts. Accepts top-level JSON fields only (parameter wrapping is
        disabled). PATCH creates a new proposed revision and returns 201 with a
        new id; the original remains unchanged. Approve with edits creates and
        approves a new human revision. Only a current proposed revision may be
        changed; approved/rejected/superseded/revoked or old revisions return
        409, including an identical retry. Expired proposals may be rejected but
        cannot be edited or approved. When signal learning is enabled at
        installation, account-feature and policy levels, held agent text
        requires release approval or an actual human text edit. Invalid text or
        no edits on PATCH returns 422; model validation may return message and
        attributes. Unknown fields are ignored; status is not editable. Approval
        may ingest embeddings after the decision.
      operationId: reject-knowledge-proposal
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: integer
          description: Numeric account id; the authenticated caller must be a member.
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: Proposal id, scoped through the URL account.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/knowledge_proposal_rejection'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledge_proposal'
              example:
                id: 10
                status: rejected
                question: Synthetic opening question?
                answer: Synthetic public answer.
                confidence: verified
                author_kind: human
                author:
                  id: 45
                  name: Synthetic Administrator
                approved_at: null
                closed_at: '2026-10-22T01:39:37.918Z'
                created_at: '2026-10-22T01:39:37.434Z'
                revision: 1
                rejection_reason: Synthetic review reason.
                rejection_suppressed_count: 0
                kind: add
                valid_from: null
                valid_until: null
                audience_verdict: null
                audience_verdict_reason: null
                released_verdict: null
                released_verdict_reason: null
                observation_count: 1
                quality_reasons: []
                urgency: normal
                sources: []
          x-blank-reason-example:
            id: 49
            status: rejected
            question: What is the minimum deposit for plan 25?
            answer: The minimum deposit for plan 26 is $50.
            confidence: verified
            author_kind: human
            author:
              id: 93
              name: Msgr. Abe Hackett
            approved_at: null
            closed_at: '2026-10-22T01:39:52.734Z'
            created_at: '2026-10-22T01:39:52.688Z'
            revision: 1
            rejection_reason: null
            rejection_suppressed_count: 0
            kind: add
            valid_from: null
            valid_until: null
            audience_verdict: null
            audience_verdict_reason: null
            released_verdict: null
            released_verdict_reason: null
            observation_count: 1
            quality_reasons: []
            urgency: normal
            sources: []
          x-blank-reason-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-blank-reason.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-default.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-expired-example:
            id: 53
            status: rejected
            question: What is the minimum deposit for plan 28?
            answer: The minimum deposit for plan 29 is $50.
            confidence: verified
            author_kind: human
            author:
              id: 96
              name: Mr. Malcom Haley
            approved_at: null
            closed_at: '2026-10-22T01:39:53.854Z'
            created_at: '2026-10-22T01:39:53.446Z'
            revision: 1
            rejection_reason: Synthetic review reason.
            rejection_suppressed_count: 0
            kind: add
            valid_from: '2026-10-20T01:39:53.384Z'
            valid_until: '2026-10-21T01:39:53.385Z'
            audience_verdict: null
            audience_verdict_reason: null
            released_verdict: null
            released_verdict_reason: null
            observation_count: 1
            quality_reasons: []
            urgency: normal
            sources: []
          x-expired-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-expired.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '400':
          description: Multiple credential types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orchestration_studio_credential_conflict'
          x-mixed-credentials-example:
            error:
              code: multiple_credentials
          x-mixed-credentials-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-mixed-credentials.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '401':
          description: Authentication or account membership required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orchestration_studio_unauthorized'
          x-foreign-account-example:
            error: You are not authorized to access this account
          x-foreign-account-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-foreign-account.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-role-401-example:
            error: Access to this endpoint is not authorized for bots
          x-role-401-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-role-401.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '402':
          description: >-
            Account trial is expired and locked; writes are refused before
            feature and role checks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledge_model_trial_lock'
          x-trial-locked-example:
            error: trial_expired_locked
            message: >-
              This workspace trial has ended. Restore billing from the billing
              page to continue.
          x-trial-locked-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-trial-locked.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '403':
          description: Administrator required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
          x-role-403-example:
            error: You are not authorized to do this action
          x-role-403-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-role-403.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '404':
          description: Feature disabled or record outside this account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
          x-feature-off-example:
            error: Resource could not be found
          x-feature-off-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-feature-off.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-foreign-record-example:
            error: Resource could not be found
          x-foreign-record-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-foreign-record.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '409':
          description: >-
            Stale revision, forbidden lifecycle transition, expiry or held
            proposal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
          x-from-approved-example:
            error: only the newest revision of a proposed correction can be changed
          x-from-approved-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-from-approved.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-from-rejected-example:
            error: only the newest revision of a proposed correction can be changed
          x-from-rejected-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-from-rejected.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-from-revoked-example:
            error: only the newest revision of a proposed correction can be changed
          x-from-revoked-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-from-revoked.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-from-superseded-example:
            error: only the newest revision of a proposed correction can be changed
          x-from-superseded-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-from-superseded.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
          x-old-revision-example:
            error: only the newest revision of a proposed correction can be changed
          x-old-revision-example-provenance:
            capture_file: >-
              docs/platform-api/knowledge-model-evidence/reject-knowledge-proposal-old-revision.json
            content_type: application/json; charset=utf-8
            synthetic: true
            scrubbed: true
        '422':
          description: Invalid input or validation refusal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/knowledge_proposal_write_error'
      security:
        - userApiKey: []
components:
  schemas:
    knowledge_proposal_rejection:
      type: object
      properties:
        reason:
          type: string
          nullable: true
          maxLength: 500
          description: Reason.
      additionalProperties: true
    knowledge_proposal:
      type: object
      properties:
        id:
          type: integer
          description: Id.
        status:
          type: string
          enum:
            - proposed
            - approved
            - rejected
            - superseded
            - revoked
          description: Status.
        question:
          type: string
          description: Question.
        answer:
          type: string
          description: Answer.
        confidence:
          type: string
          enum:
            - verified
            - tentative
          description: Confidence.
        author_kind:
          type: string
          enum:
            - human
            - agent
          description: Author kind.
        author:
          type: object
          properties:
            id:
              type: integer
              description: Id.
            name:
              type: string
              nullable: true
              description: Name.
          required:
            - id
            - name
          additionalProperties: false
          description: Author.
        source_conversation_id:
          type: integer
          description: Source conversation id.
        approved_at:
          type: string
          nullable: true
          format: date-time
          description: Approved at.
        approved_by:
          type: object
          properties:
            id:
              type: integer
              description: Id.
            name:
              type: string
              nullable: true
              description: Name.
          required:
            - id
            - name
          additionalProperties: false
          description: Approved by.
        closed_at:
          type: string
          nullable: true
          format: date-time
          description: Closed at.
        created_at:
          type: string
          format: date-time
          description: Created at.
        revision:
          type: integer
          description: Revision.
        rejection_reason:
          type: string
          nullable: true
          description: Rejection reason.
        rejection_suppressed_count:
          type: integer
          description: Rejection suppressed count.
        previously_rejected:
          type: object
          properties:
            id:
              type: integer
              description: Id.
            revision:
              type: integer
              description: Revision.
            rejection_reason:
              type: string
              nullable: true
              description: Rejection reason.
            closed_at:
              type: string
              nullable: true
              format: date-time
              description: Closed at.
          required:
            - id
            - revision
            - rejection_reason
            - closed_at
          additionalProperties: false
          description: Previously rejected.
        kind:
          type: string
          enum:
            - add
            - update
            - retire
            - expire
          description: Kind.
        valid_from:
          type: string
          nullable: true
          format: date-time
          description: Valid from.
        valid_until:
          type: string
          nullable: true
          format: date-time
          description: Valid until.
        audience_verdict:
          type: string
          nullable: true
          enum:
            - pass
            - hold
            - fail
            - null
          description: Audience verdict.
        audience_verdict_reason:
          type: string
          nullable: true
          description: Audience verdict reason.
        released_verdict:
          type: string
          nullable: true
          enum:
            - pass
            - hold
            - fail
            - null
          description: Released verdict.
        released_verdict_reason:
          type: string
          nullable: true
          description: Released verdict reason.
        observation_count:
          type: integer
          description: Observation count.
        quality_reasons:
          type: array
          items: {}
          description: Quality reasons.
        urgency:
          type: string
          enum:
            - normal
            - time_sensitive
          description: Urgency.
        sources:
          type: array
          items:
            type: object
            properties:
              provider:
                type: string
                description: Provider.
              object_type:
                type: string
                description: Object type.
              ref_id:
                type: string
                description: Ref id.
              ref_url:
                type: string
                nullable: true
                description: Ref url.
              occurred_at:
                type: string
                nullable: true
                format: date-time
                description: Occurred at.
              state:
                type: string
                enum:
                  - merged
                  - closed
                  - resolved
                  - draft
                  - other
                description: State.
              trust_tier:
                type: string
                enum:
                  - A
                  - B
                  - C
                description: Trust tier.
            required:
              - provider
              - object_type
              - ref_id
              - ref_url
              - occurred_at
              - state
              - trust_tier
            additionalProperties: false
          maxItems: 20
          description: Sources.
        embedding_state:
          type: string
          description: Embedding state.
      required:
        - id
        - status
        - question
        - answer
        - confidence
        - author_kind
        - approved_at
        - closed_at
        - created_at
        - revision
        - rejection_reason
        - kind
        - valid_from
        - valid_until
        - audience_verdict
        - audience_verdict_reason
        - released_verdict
        - released_verdict_reason
        - observation_count
        - quality_reasons
        - urgency
        - sources
      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_model_trial_lock:
      type: object
      properties:
        error:
          type: string
          description: Trial lock state.
          enum:
            - trial_expired_locked
        message:
          type: string
          description: Restore billing 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
    knowledge_proposal_write_error:
      oneOf:
        - $ref: '#/components/schemas/error_message'
        - $ref: '#/components/schemas/knowledge_proposal_validation_error'
    knowledge_proposal_validation_error:
      type: object
      properties:
        message:
          type: string
          description: Message.
        attributes:
          type: array
          items:
            type: string
          description: Attributes.
      required:
        - message
        - attributes
      additionalProperties: false
  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.