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

# Create a book.

> Creates an active Derivitec book and makes the caller its owner. Both name and description are required,
and the name cannot duplicate another book already linked to the caller. Creation completes before
returning in the normal result envelope.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/Books/CreateBook
openapi: 3.0.4
info:
  title: Derivitec Api 1.0
  version: '1.0'
servers:
  - url: https://api.riskportal.activeviam.com
security:
  - oauth2: []
  - apikey: []
tags:
  - name: AdminUser
  - name: AtotiReport
  - name: AtotiSession
  - name: BloombergOAuth
  - name: Bond
  - name: BondYieldCurvePage
  - name: BookAccess
  - name: Books
  - name: Commodity
  - name: Counterparties
  - name: Currencies
  - name: Equity
  - name: EquityDividend
  - name: EquityPage
  - name: FeatureFlag
  - name: Fx
  - name: FxPage
  - name: GroupAccess
  - name: Home
  - name: LegacyPosition
  - name: MarketData
  - name: MarketDataProvider
  - name: MarketDataProviderAccess
  - name: Meta
  - name: Notification
  - name: Organisation
  - name: PnLReport
  - name: PortfolioAccess
  - name: Portfolios
  - name: Position
  - name: PositionFilter
  - name: PricingEnvironment
  - name: PricingEnvironmentAccess
  - name: RateAsset
  - name: RateAssetPage
  - name: Report
  - name: ReportDefinition
  - name: ReportHistoryLauncherQuery
  - name: ReportLauncher
  - name: ReportQuery
  - name: ReportQueryViewUser
  - name: ReportRestriction
  - name: ReportView
  - name: RiskReport
  - name: Tradable
  - name: TradeBooking
  - name: User
  - name: VarReport
  - name: VarReportQuery
  - name: YieldCurvePage
paths:
  /api/Books/CreateBook:
    post:
      tags:
        - Books
      summary: Create a book.
      description: >-
        Creates an active Derivitec book and makes the caller its owner. Both
        name and description are required,

        and the name cannot duplicate another book already linked to the caller.
        Creation completes before

        returning in the normal result envelope.
      operationId: CreateBook
      requestBody:
        description: >-
          Required non-empty `BookName` and `Description`. This request declares
          no explicit length bounds.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiBookCreateRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiBookCreateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiBookCreateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiBookCreateRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBookCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiBookCreateRequest:
      required:
        - $type
      type: object
      properties:
        book_name:
          type: string
          description: >-
            Name for the new book; it must be non-empty and unique among books
            linked to the caller.
          nullable: true
          example: Example book
        description:
          type: string
          description: Non-empty client-visible description for the new book.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.Book.ApiBookCreateRequest, Derivitec.Web.Core
      additionalProperties: false
      description: Book name and description used to create a Derivitec-managed book.
    ApiBookCreateResponse:
      required:
        - $type
      type: object
      additionalProperties: false
      description: Outcome of creating a book.
      properties:
        is_success:
          type: boolean
          description: >-
            Whether the operation completed successfully. The default is `true`;
            error outcomes set it to `false`.
          example: true
        error_messages:
          type: array
          items:
            type: string
          description: >-
            Messages explaining operation-level failures. The collection is
            empty by default.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.Book.ApiBookCreateResponse, Derivitec.Web.Core
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: false
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth2 access-token requested from AWS Cognito and provided as a Auth
        Bearer header
      flows:
        implicit:
          authorizationUrl: https://auth.riskportal.derivitec.com/oauth2/authorize
          scopes: {}
    apikey:
      type: apiKey
      description: API-Key requested via the site and provided as a header
      name: x-api-key
      in: header

````