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

# Create note

> Create a new note attached to a company or a person. Exactly one of
`companyPublicId` or `personPublicId` must be provided.




## OpenAPI

````yaml /openapi.yaml post /notes
openapi: 3.1.0
info:
  title: Concrete API
  description: >
    The Concrete API provides programmatic access to view and create select data
    in Concrete.  The API is primarily intended to facilitate data pipeline
    automations for portfolio management.
  version: 1.0.0
  license:
    name: MIT
  contact:
    name: Concrete Support
    email: support@concretehq.com
    url: https://concretehq.com
servers:
  - url: https://app.concretehq.com/api/v1
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Authentication
    description: Authentication and member information
  - name: Companies
    description: Portfolio company management
  - name: Funds
    description: Fund and portfolio management
  - name: Meetings
    description: External meeting imports
  - name: Notes
    description: Notes attached to companies and people
  - name: Connections
    description: Data connections and message uploads
  - name: Trackers
    description: Tracked metrics and their per-company value history
paths:
  /notes:
    post:
      tags:
        - Notes
      summary: Create note
      description: |
        Create a new note attached to a company or a person. Exactly one of
        `companyPublicId` or `personPublicId` must be provided.
      operationId: createNote
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NoteCreateInput'
      responses:
        '201':
          description: Note created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoteCreateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    NoteCreateInput:
      type: object
      description: >
        Input for creating a note. Exactly one of `companyPublicId` or
        `personPublicId`

        must be provided.
      required:
        - content
      properties:
        content:
          type: string
          minLength: 1
          description: Note content in Markdown. Rendered as rich text in the Concrete app.
          example: Kickoff call notes…
        occurredAt:
          type: string
          format: date-time
          description: When the note's subject matter occurred (ISO 8601). Defaults to now.
          example: '2026-04-15T14:00:00Z'
        topics:
          type: array
          description: >
            Topics categorizing the note. Optional, defaults to `["other"]` if
            omitted.
          items:
            $ref: '#/components/schemas/NoteTopic'
          default:
            - other
          example:
            - board-meeting
        companyPublicId:
          type: string
          description: Public ID of the company to attach the note to
          example: abc123def456
        personPublicId:
          type: string
          description: Public ID of the person to attach the note to
          example: 654fed321cba
    NoteCreateResponse:
      type: object
      required:
        - publicId
      properties:
        publicId:
          type: string
          description: Created note public ID
          example: abc123def456
    NoteTopic:
      type: string
      description: Categorization for a note's subject matter.
      enum:
        - periodic-company-update
        - company-announcement
        - board-meeting
        - adhoc-company-update
        - legal-communication
        - other
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable error message
          example: Not found
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication using Bearer token format

````