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

# Add Brand Facts

> Adds brand facts to a website's Knowledge Base in bulk (1-50 per call). Every fact runs the full ingestion pipeline — deduplication, approval gates, and pillar routing — and there is no way to force-approve: inputs are declarative (text, optional source URL, optional pillar pin) and the response reports one outcome per fact. Facts without a pillar_id are routed automatically and may land unfiled. Requires a website-admin API key. Also available as the MCP tool `add_brand_facts`.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/knowledge-base/facts
openapi: 3.1.0
info:
  title: AthenaHQ API
  description: >-
    AthenaHQ API provides programmatic access to manage your websites and
    prompts for AI-powered content optimization.
  version: 1.0.0
  contact:
    email: support@athenahq.ai
servers:
  - url: https://api.athenahq.ai
    description: Production server
security:
  - apiKey: []
tags:
  - name: Basics
    description: Core API operations for managing websites and prompts
  - name: Metrics
    description: Metrics and analytics endpoints for tracking AI visibility
  - name: Billing
    description: Billing and credits endpoints for managing usage
  - name: Team Management
    description: Endpoints for managing team members and invitations
  - name: Groups
    description: Endpoints for managing groups of websites
  - name: Content
    description: >-
      Endpoints for accessing Content Hub data — tabs, tracked URLs, and per-URL
      prompt breakdowns.
  - name: Pitch Workspace
    description: >-
      Endpoints for accessing pitch workspace reports — org-scoped pitch runs
      with competitors, prompts, attributes, and aggregate metrics.
  - name: Knowledge Base
    description: >-
      Endpoints for reading the brand Knowledge Base — approved brand facts and
      the pillars that organize them.
paths:
  /api/v1/knowledge-base/facts:
    post:
      tags:
        - Knowledge Base
      summary: Add Brand Facts
      description: >-
        Adds brand facts to a website's Knowledge Base in bulk (1-50 per call).
        Every fact runs the full ingestion pipeline — deduplication, approval
        gates, and pillar routing — and there is no way to force-approve: inputs
        are declarative (text, optional source URL, optional pillar pin) and the
        response reports one outcome per fact. Facts without a pillar_id are
        routed automatically and may land unfiled. Requires a website-admin API
        key. Also available as the MCP tool `add_brand_facts`.
      operationId: addBrandFacts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                website_id:
                  type: string
                  format: uuid
                  description: The website whose Knowledge Base to add facts to.
                facts:
                  type: array
                  minItems: 1
                  maxItems: 50
                  description: >-
                    The facts to ingest. No status or approval field exists —
                    the pipeline decides.
                  items:
                    type: object
                    properties:
                      text:
                        type: string
                        minLength: 1
                        maxLength: 2000
                        description: The fact statement.
                      source_url:
                        type: string
                        description: >-
                          URL backing the fact. Third-party URLs make the fact
                          pending human review; first-party URLs and facts
                          without a URL can auto-approve.
                      pillar_id:
                        type: string
                        format: uuid
                        description: >-
                          Pin the fact to this pillar (must belong to the
                          website). Omit to let the pipeline route it.
                    required:
                      - text
              required:
                - website_id
                - facts
      responses:
        '201':
          description: >-
            Facts ingested; one outcome per fact, aligned with the request by
            index
          content:
            application/json:
              schema:
                type: object
                properties:
                  outcomes:
                    type: array
                    items:
                      $ref: '#/components/schemas/BrandFactIngestOutcome'
                required:
                  - outcomes
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_website_id:
                  value:
                    error: website_id is required
                empty_facts:
                  value:
                    error: facts must contain at least one fact
                foreign_pillar:
                  value:
                    error: facts[1].pillar_id does not exist on this website
                unsafe_source_url:
                  value:
                    error: facts[0].source_url is not a valid URL
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Forbidden - No admin access to this website, or the Knowledge Base
            is not enabled for the organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                unauthorized_website:
                  value:
                    error: Unauthorized access to this website
                kb_not_enabled:
                  value:
                    error: Knowledge Base is not enabled for this organization
      security:
        - apiKey: []
components:
  schemas:
    BrandFactIngestOutcome:
      type: object
      properties:
        index:
          type: integer
          description: Position of the fact in the request's facts array.
        outcome:
          type: string
          enum:
            - approved
            - pending
            - duplicate
          description: >-
            What the ingestion pipeline decided. Extensible: new outcome values
            may be added as the pipeline evolves — treat unknown values as
            non-terminal.
        fact_id:
          type:
            - string
            - 'null'
          description: The created fact's id; null for duplicates (nothing was inserted).
        pillar_id:
          type:
            - string
            - 'null'
          description: >-
            The pillar the fact was filed under (pinned or auto-routed); null
            when unfiled.
      required:
        - index
        - outcome
        - fact_id
        - pillar_id
    Error:
      type: object
      description: Error response object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message describing what went wrong
          example: Unauthorized
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key for authentication. You can create one
        [here](https://app.athenahq.ai/organization?tab=api).

````