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

# Create a Knowledge Source

> Creates a Knowledge Source in a Knowledge Store. You define the source metadata and type—no file is uploaded. Use this method for manual sources, URL sources (for web scraping), or when creating the source first and ingesting content later (pdf, txt, ctxt).



## OpenAPI

````yaml https://api-trial.cognigy.ai/openapi/openapi-viewer.json post /v2.0/knowledgestores/{knowledgeStoreId}/sources
openapi: 3.0.0
info:
  title: Cognigy.AI REST-ful-API Reference
  version: 2026.10.0
  description: >

    ### Introduction

    This is the [OpenAPI 3.0](https://swagger.io/specification/) documentation
    of the
    [REST](https://en.wikipedia.org/wiki/Representational_state_transfer)-ful
    Cognigy.AI API.


    ### Cross-Origin Resource Sharing

    This API features Cross-Origin Resource Sharing (CORS) implemented in
    compliance with [W3C spec](https://www.w3.org/TR/cors/), which allows
    cross-domain communication from the browser. All responses include a
    wildcard same-origin header, making the API fully accessible.


    ### Authentication

    Cognigy.AI offers four forms of authentication:

    - API Key

    - CXone Token

    - OAuth2

    - BasicAuth


    An API Key is a security token. You can use API Keys in your path or HTTP
    header. Never expose your API Key and keep it safe and secure. Revoke the
    API Key if it got exposed or stolen.


    OAuth2 is an open protocol to allow secure authorization by web, mobile and
    desktop applications. For further information see [RFC 6749 - "The OAuth 2.0
    Authorization Framework"](https://tools.ietf.org/html/rfc6749) and [RFC 6750
    - "The OAuth 2.0 Authorization Framework: Bearer Token
    Usage"](https://tools.ietf.org/html/rfc6750).


    Basic Auth is only used for API calls regarding the Management-UI.


    ### Error Handling

    This API uses HTTP status codes equal or above 400 to indicate errors. Error
    details are generated in compliance with [RFC 7807 - "Problem Details for
    HTTP APIs"](https://tools.ietf.org/html/rfc7807).


    Every error response contains a traceId, which should be provided to the
    Cognigy.AI Technical Support when reporting an error.
  contact:
    name: Cognigy Technical Support
    url: https://www.cognigy.com
    email: support@cognigy.com
servers:
  - url: https://api-trial.cognigy.ai/new/
    description: Cognigy.AI API
security:
  - APIKeyHeader: []
  - APIKeyQueryParam: []
  - CXoneTokenHeader: []
  - OAuth2: []
  - BasicAuth: []
tags:
  - name: Cognigy.AI REST-ful API
    description: The Cognigy.AI REST-ful API
externalDocs:
  description: Cognigy.AI Documentation
  url: https://docs.cognigy.com/docs/
paths:
  /v2.0/knowledgestores/{knowledgeStoreId}/sources:
    post:
      tags:
        - Knowledge Sources
      summary: Create a Knowledge Source
      description: >-
        Creates a Knowledge Source in a Knowledge Store. You define the source
        metadata and type—no file is uploaded. Use this method for manual
        sources, URL sources (for web scraping), or when creating the source
        first and ingesting content later (pdf, txt, ctxt).
      operationId: createKnowledgeSource_2_0
      parameters:
        - in: header
          name: Accept
          description: >-
            The `Accept` header specifies the media type that the client expects
            in the response. Available options: `application/json`,
            `application/hal+json`, `application/xml`, `text/xml`, `text/csv`.
            The default value is `application/json`.
          required: false
          schema:
            type: string
            enum:
              - application/json
              - application/hal+json
              - application/xml
              - text/xml
              - text/csv
          example: application/json
        - in: path
          name: knowledgeStoreId
          description: The Id of the KnowledgeStore
          required: true
          schema:
            type: string
            pattern: ^[a-z0-9]{24}$
            minLength: 24
            maxLength: 24
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    name:
                      type: string
                      example: mysource
                      description: The name of the KnowledgeSource
                    description:
                      type: string
                      example: mysource description
                      description: The description about what the knowledge source contains
                    type:
                      type: string
                      enum:
                        - url
                        - manual
                        - pdf
                        - txt
                        - ctxt
                        - extension
                      description: The type of source for the Knowledge store
                    metaData:
                      type: object
                      properties:
                        tags:
                          type: array
                          items:
                            type: string
                            example: tag1
                    url:
                      type: string
                      example: https://www.some-article.com
                      description: >-
                        The url of the website to scrape the data from. This is
                        only applicable for KnowledgeSources of type "url"
                - type: object
                  properties:
                    name:
                      type: string
                      example: mysource
                      description: The name of the KnowledgeSource
                    description:
                      type: string
                      example: mysource description
                      description: The description about what the knowledge source contains
                    type:
                      type: string
                      enum:
                        - url
                        - manual
                        - pdf
                        - txt
                        - ctxt
                        - extension
                      description: The type of source for the Knowledge store
                    metaData:
                      type: object
                      properties:
                        tags:
                          type: array
                          items:
                            type: string
                            example: tag1
                    connectorId:
                      type: string
                      format: uuid
                      description: >-
                        The connector Id associated with the KnowledgeSource.
                        This is only applicable for KnowledgeSources of type
                        "extension"
                  example:
                    name: mysource
                    description: mysource description
                    type: extension
                    metaData:
                      tags:
                        - tag1
                    connectorId: uuid
      responses:
        '201':
          description: Returns KnowledgeSource metadata object.
          content:
            application/json:
              schema:
                type: object
                properties:
                  knowledgeSource:
                    type: object
                    properties:
                      name:
                        type: string
                        example: mysource
                        description: The name of the KnowledgeSource
                      description:
                        type: string
                        example: mysource description
                        description: >-
                          The description about what the knowledge source
                          contains
                      type:
                        type: string
                        enum:
                          - url
                          - manual
                          - pdf
                          - txt
                          - ctxt
                          - extension
                        description: The type of source for the Knowledge store
                      metaData:
                        type: object
                        properties:
                          tags:
                            type: array
                            items:
                              type: string
                              example: tag1
                      data:
                        type: object
                        additionalProperties: true
                        description: >-
                          Custom metadata object to store additional information
                          in the KnowledgeSource
                        example:
                          _id: x4xU6hMntv23p
                          sys_CreatedAt: '2019-12-16T11:40:45.7212'
                          sys_UpdatedAt: '2025-10-01T07:46:04.5932'
                          Type: FAQ
                      chunkCount:
                        type: integer
                      status:
                        type: string
                        enum:
                          - ready
                          - ingesting
                          - disabled
                      connectorReference:
                        type: string
                        format: uuid
                        description: >-
                          The connector Id associated with the KnowledgeSource.
                          This is only applicable for KnowledgeSources of type
                          "extension"
                      referenceId:
                        type: string
                        format: uuid
                      _id:
                        type: string
                        pattern: ^[a-z0-9]{24}$
                        minLength: 24
                        maxLength: 24
                      createdAt:
                        type: integer
                        description: Unix-timestamp
                        example: 1694518620
                        minimum: 0
                        maximum: 2147483647
                      lastChanged:
                        type: integer
                        description: Unix-timestamp
                        example: 1694518620
                        minimum: 0
                        maximum: 2147483647
                      createdBy:
                        type: string
                        pattern: ^[a-z0-9]{24}$
                        minLength: 24
                        maxLength: 24
                      lastChangedBy:
                        type: string
                        pattern: ^[a-z0-9]{24}$
                        minLength: 24
                        maxLength: 24
                    description: >
                      The IEntityMeta defines meta information every entity
                      within the system has. These are dates when a resource was
                      created and modified as well as information about the user
                      who initially created a resource and who modified it the
                      last time.
        '400':
          description: >-
            The server cannot or will not process the request due to something
            that is perceived to be a client error (e.g., malformed request
            syntax, invalid request message framing, or deceptive request
            routing)
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Bad Request
                  title:
                    type: string
                    example: Bad Request Error
                  status:
                    type: number
                    example: 400
                  detail:
                    type: string
                    example: Validation failed. Missing payload.
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '401':
          description: >-
            The request has not been applied because it lacks valid
            authentication credentials for the target resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Unauthorized
                  title:
                    type: string
                    example: Unauthorized Error
                  status:
                    type: number
                    example: 401
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 401
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '402':
          description: Upgrade your Plan to increase your Quota.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Payment Required
                  title:
                    type: string
                    example: Payment Required Error
                  status:
                    type: number
                    example: 402
                  detail:
                    type: string
                    example: Validation failed. Missing payload.
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 402
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '403':
          description: The server understood the request but refuses to authorize it.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Forbidden
                  title:
                    type: string
                    example: Forbidden Error
                  status:
                    type: number
                    example: 403
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '404':
          description: >-
            The origin server did not find a current representation for the
            target resource or is not willing to disclose that one exists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Not Found
                  title:
                    type: string
                    example: Not Found Error
                  status:
                    type: number
                    example: 404
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
                  logLevel:
                    type: string
                    example: error
        '405':
          description: >-
            The method received in the request-line is known by the origin
            server but not supported by the target resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Method Not Allowed
                  title:
                    type: string
                    example: Method Not Allowed Error
                  status:
                    type: number
                    example: 405
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '409':
          description: The request conflicts with current state of the server.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Conflict
                  title:
                    type: string
                    example: Conflict Error
                  status:
                    type: number
                    example: 409
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1004
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '413':
          description: The request entity is larger than limits defined by server.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Payload Too Large
                  title:
                    type: string
                    example: Payload Too Large Error
                  status:
                    type: number
                    example: 413
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '500':
          description: >-
            The server encountered an unexpected condition that prevented it
            from fulfilling the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Internal Server Error
                  title:
                    type: string
                    example: Internal Server Error
                  status:
                    type: number
                    example: 500
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '501':
          description: >-
            The server does not support the functionality required to fulfill
            the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Not Implemented
                  title:
                    type: string
                    example: Not Implemented Error
                  status:
                    type: number
                    example: 501
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1009
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '502':
          description: >-
            The server, while acting as a gateway or proxy, received an invalid
            response from an inbound server it accessed while attempting to
            fulfill the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Bad Gateway
                  title:
                    type: string
                    example: Bad Gateway Error
                  status:
                    type: number
                    example: 502
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '503':
          description: The server is not ready to handle the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Service Unavailable
                  title:
                    type: string
                    example: Service Unavailable Error
                  status:
                    type: number
                    example: 503
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 503
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
        '504':
          description: >-
            The server, while acting as a gateway or proxy, did not receive a
            timely response from an upstream server it needed to access in order
            to complete the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: Gateway Timeout
                  title:
                    type: string
                    example: Gateway Timeout Error
                  status:
                    type: number
                    example: 504
                  detail:
                    type: string
                  instance:
                    type: string
                    example: /v2.0/flows/5ce7c2d833ea1e04d7e6c432
                  code:
                    type: string
                    example: 1000
                  traceId:
                    type: string
                    example: api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f
                  details:
                    type: object
                    example: {}
      security:
        - APIKeyHeader: []
        - APIKeyQueryParam: []
        - CXoneTokenHeader: []
        - OAuth2: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: Supply the API Key in the HTTP-Header
    APIKeyQueryParam:
      type: apiKey
      in: query
      name: api_key
      description: Supply the API Key in the Url-Query
    CXoneTokenHeader:
      type: apiKey
      in: header
      name: x-cxone-authorization
      description: >-
        Supply the CXone Token in the HTTP-Header containing the word "Bearer"
        followed by a space and a Token String. Applicable only in CXone
        integrated environments.
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: /auth/oauth2/token
          refreshUrl: /auth/oauth2/token
          scopes: {}
        authorizationCode:
          authorizationUrl: /auth/oauth2/authorize
          tokenUrl: /auth/oauth2/token
          scopes: {}
    BasicAuth:
      type: http
      scheme: basic
      description: Basic Authentication used by routes designed for the Management-UI.

````