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

# Create Catalog

> Creates a new catalog in the specified project. A catalog represents a connected data source — such as Airtable, Stripe, or Google Sheets — that exposes its schemas and tables for querying within Peaka. Requires a `name` and a `connectionId` referencing an existing connection. Some connectors accept additional `extraParameters` (e.g., Google Sheets requires specifying which sheets to include).

<span style={{display: "flex", gap: "10px", flexDirection: "row", alignItems: "center"}}>
  <img src="https://cdn.peaka.com/badges/partner-api-key-badge.png" />

  <img src="https://cdn.peaka.com/badges/project-api-key-badge.png" />
</span>


## OpenAPI

````yaml post /data/projects/{projectId}/catalogs
openapi: 3.0.1
info:
  title: Peaka Gateway API
  description: Peaka Gateway API Documentation
  version: '1.0'
servers:
  - url: https://partner.peaka.studio/api/v1
    description: Default Server URL (US Zone)
  - url: https://partner.eu.peaka.studio/api/v1
    description: EU Zone
security:
  - bearerAuth: []
paths:
  /data/projects/{projectId}/catalogs:
    post:
      tags:
        - Data -- Catalogs
      summary: Create Catalog
      description: >-
        Creates a new catalog in the specified project. A catalog represents a
        connected data source — such as Airtable, Stripe, or Google Sheets —
        that exposes its schemas and tables for querying within Peaka. Requires
        a `name` and a `connectionId` referencing an existing connection. Some
        connectors accept additional `extraParameters` (e.g., Google Sheets
        requires specifying which sheets to include).
      operationId: createCatalog
      parameters:
        - name: projectId
          in: path
          description: ID of the project
          required: true
          schema:
            type: string
          example: mtKDhe1U
      requestBody:
        description: Catalog Request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogRequest'
            examples:
              Create Airtable Catalog:
                description: Create Airtable Catalog
                value:
                  name: exampleAirtableCatalog
                  connectionId: 8db17e23-29de-4dab-8886-af9717e0e742
              Create GoogleSheets Catalog:
                description: Create GoogleSheets Catalog
                value:
                  name: exampleGoogleSheetsCatalog
                  connectionId: p3fb17l83-g9de-46mb-8823-yu9717e0ekl8
                  extraParameters:
                    sheets:
                      - id: 1zBlTlAarZ94Z-xbo8T-GZEckV93VGSse7qq0_S0Kdzc
                        name: Customers
                      - id: glkuldqwerqwAarZ94Z-xbo8T-GdfhsdgVGSse7qq0_S0Kdzc
                        name: Sales
        required: true
      responses:
        '200':
          description: Catalog created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catalog'
              examples:
                Create Airtable Catalog:
                  description: Create Airtable Catalog
                  value:
                    id: '626654862255325504'
                    name: exampleairtablecatalog
                    displayName: exampleAirtableCatalog
                    catalogType: airtable
                    connectionId: 8db17e23-29de-4dab-8886-af9717e0e742
                Create Stripe Catalog:
                  description: Create Stripe Catalog
                  value:
                    id: '626654862255325504'
                    name: exampleStripeCatalog
                    displayName: exampleStripeCatalog
                    catalogType: stripe
                    connectionId: 8db17e23-29de-4dab-8886-af9717e0e742
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
              examples:
                Bad Request:
                  description: Bad Request
                  value:
                    errorCode: 100
                    message: There are already a catalog with same name!!
components:
  schemas:
    CatalogRequest:
      type: object
      properties:
        name:
          type: string
          description: Name of the catalog
        connectionId:
          type: string
          description: >
            Connection ID.


            This is the ID of the connection that is used to connect to the
            catalog.


            You must create a connection before creating a catalog.
        extraParameters:
          type: object
          additionalProperties: true
          description: Extra parameters for the catalog
    Catalog:
      type: object
      properties:
        id:
          type: string
          description: The ID of the catalog.
        name:
          type: string
          description: The name of the catalog.
        displayName:
          type: string
          description: The display name of the catalog.
        catalogType:
          type: string
          description: The type of the catalog.
        connectionId:
          type: string
          description: The connection ID of the catalog.
      description: |-
        This class represents a Catalog.
         It contains the id, name, display name, type, and connection ID of the catalog.
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        Use the Authorization header with the value 'Bearer <apiKey>' to
        authenticate. Partner API Keys have full access; Project API Keys are
        limited to their project scope. Learn more:
        https://docs.peaka.com/api-reference/authentication
      scheme: bearer
      bearerFormat: Api Key

````