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

# Create a Category

> Create a Category



## OpenAPI

````yaml /api-reference/openapi.json post /v1/categories
openapi: 3.0.3
info:
  title: Bookeeping.ai API
  version: 1.0.0
  description: API for accessing and managing bookkeeping.ai data.
servers:
  - url: https://api.bookeeping.ai/public-api
    description: USA Virginia Region
  - url: https://ca-api.bookeeping.ai/public-api
    description: Canada Toronto Region
  - url: https://eu-api.bookeeping.ai/public-api
    description: EU Belgium Region
security:
  - BearerAuth: []
paths:
  /v1/categories:
    post:
      tags:
        - Categories
      summary: Create a Category
      description: Create a Category
      operationId: createCategory
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the category
                emoji:
                  type: string
                  nullable: true
                  description: The emoji of the category
                group:
                  type: string
                  nullable: true
                  description: The group of the category
                parentCategory:
                  type: string
                  enum:
                    - INCOME
                    - OTHER_INCOME
                    - SALES
                    - EXPENSE
                    - DEPRECIATION
                    - COST_OF_GOODS_SOLD
                    - OTHER_EXPENSE
                    - OVERHEAD
                    - CURRENT_ASSET
                    - FIXED_ASSET
                    - INVENTORY
                    - NON_CURRENT_ASSET
                    - PREPAYMENT
                    - LIABILITY
                    - CURRENT_LIABILITY
                    - NON_CURRENT_LIABILITY
                    - TAX_PAYABLE
                    - TAX
                    - EQUITY
                    - OTHER
                  description: The parent category of the category
                number:
                  type: string
                  description: The number of the category
                  default: ''
              required:
                - name
                - parentCategory
              additionalProperties: false
      responses:
        '200':
          description: Create a Category executed successfully
          headers:
            x-rate-limiter-daily-limit:
              description: Maximum number of requests allowed per day
              schema:
                type: integer
                example: 1500
            x-rate-limiter-minutely-limit:
              description: Maximum number of requests allowed per minute
              schema:
                type: integer
                example: 25
            x-rate-limiter-daily-usage:
              description: Number of requests made today
              schema:
                type: integer
                example: 106
            x-rate-limiter-minutely-usage:
              description: Number of requests made in the current minute
              schema:
                type: integer
                example: 1
            x-rate-limiter-operation-type:
              description: Operation type. Either read or write.
              schema:
                type: string
                enum:
                  - read
                  - write
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Success message
                  metaData:
                    type: object
                    properties:
                      warnings:
                        type: array
                        items:
                          type: string
                        description: Any validation warnings
                  data:
                    type: object
                    properties:
                      _id:
                        type: string
                        description: The id of the category
                      name:
                        type: string
                        description: The name of the category
                      projectId:
                        type: string
                        description: The project id of the category
                      emoji:
                        type: string
                        nullable: true
                        description: The emoji of the category
                      parentCategory:
                        type: string
                        enum:
                          - INCOME
                          - OTHER_INCOME
                          - SALES
                          - EXPENSE
                          - DEPRECIATION
                          - COST_OF_GOODS_SOLD
                          - OTHER_EXPENSE
                          - OVERHEAD
                          - CURRENT_ASSET
                          - FIXED_ASSET
                          - INVENTORY
                          - NON_CURRENT_ASSET
                          - PREPAYMENT
                          - LIABILITY
                          - CURRENT_LIABILITY
                          - NON_CURRENT_LIABILITY
                          - TAX_PAYABLE
                          - TAX
                          - EQUITY
                          - OTHER
                        nullable: true
                        description: The parent category of the category
                      isArchived:
                        type: boolean
                        nullable: true
                        description: Whether the category is archived
                      number:
                        type: string
                        nullable: true
                        description: The number of the category
                      group:
                        type: string
                        nullable: true
                        description: The group of the category
                      createdBy:
                        type: string
                        enum:
                          - USER
                          - SYSTEM
                        nullable: true
                        description: The created by of the category
                      createdAt:
                        type: string
                        format: date-time
                        description: The created at of the category
                      updatedAt:
                        type: string
                        format: date-time
                        description: The updated at of the category
                    required:
                      - _id
                      - name
                      - projectId
                      - createdAt
                      - updatedAt
                    additionalProperties: false
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - BadRequestError
                  message:
                    type: string
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - UnauthorizedError
                  message:
                    type: string
        '409':
          description: Conflict - Resource already exists
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - ConflictError
                  message:
                    type: string
        '429':
          description: >-
            Too Many Requests - Rate limit exceeded. Either daily or minutely
            limit exceeded. If you have any questions, please contact
            support@bookeeping.ai.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - TooManyRequestsError
                  message:
                    type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        API key for authentication. Get your key from the Dashboard > Settings >
        API Access.

````