---
title: "Create a note"
method: POST
path: "/api/v1/notes"
tags: ["Notes"]
---

# Create a note

`POST /api/v1/notes`

## Request

- Base URL: `https://app.sellerassistant.app` (the document declares no server; this is the origin it was published from)
- URL: `https://app.sellerassistant.app/api/v1/notes`
- Auth: one of:
  - API key in query parameter `api_key`
  - API key in header `X-Api-Key`

Adds notes. The body is one note, or an array of up to 100 notes. `target_type` and `target_id` name what a note belongs to. For `asin` the id is `<marketplace_id>/<asin>`.

## Request body

- union
  - NoteForm
    - `target_type` 'asin' | 'supplier' | 'purchase_order' | 'warehouse' | 'price_list', required
    - `target_id` string, required: For the type asin the id carries the marketplace too, in the form marketplace_id/asin.
    - `note` string, required
  - NoteForm[]
    - `target_type` 'asin' | 'supplier' | 'purchase_order' | 'warehouse' | 'price_list', required
    - `target_id` string, required: For the type asin the id carries the marketplace too, in the form marketplace_id/asin.
    - `note` string, required

## Response `200`

One result for each element. An array answers this shape.

- object
  - `data` Note[]
    - `id` integer: Notes on the public API v1. One resource over the two stores the application has. ApiNoteGateway reads `target_type` and sends the call to `entity_notes` or to `product_notes`.
    - `target_type` 'asin' | 'supplier' | 'purchase_order' | 'warehouse' | 'price_list'
    - `target_id` string: For the type `asin` the id is `<marketplace_id>/<asin>`.
    - `note` string
    - `user_id` integer, nullable: Who wrote the note.
    - `user_name` string, nullable: The name of that person. The list carries it, and a write answers without it.
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
  - `meta` ApiV1BatchMeta: The count of a write that took an array.
    - `succeeded` integer
    - `failed` integer
  - `errors` ApiV1BatchError[]
    - `code` string
    - `message` string

## Other responses

- `201`: The note
- `400`: Bad request - validation failed or invalid parameters
- `403`: Access denied - insufficient permissions, invalid API key, or the API request limit is used up (`public_api_key_limit`)
- `404`: Resource not found
- `429`: Too many requests - rate limit exceeded

---

[API](https://skmtc.dev/sellerassistant/apis/seller-assistant-public-api.md) · [All operations](https://skmtc.dev/sellerassistant/apis/seller-assistant-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sellerassistant/apis/seller-assistant-public-api/revisions/5b3ecdbcadb6?raw)
