profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyCEL Scripting in Template BuilderProject ScaffoldingMedia Library

Headless

Quick startSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

REST API OverviewgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postPOST /translationpatchPATCH /translationsgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

POST /csv

Ingest CSV or JSON spreadsheet rows as draft documents, one per row.

Ingest CSV rows (or JSON spreadsheet rows) as draft documents, one document per row.

Auth: Bearer JWT (WorkOS).

Query parameters

ParamTypeRequiredNotes
website_iduuidyesTarget website. Note: snake_case here, unlike most endpoints.

Request body

Two content types are accepted, dispatched on the Content-Type header.

multipart/form-data β€” fields:

  • schema_name (text, required)
  • file (raw CSV bytes, required). The first row is headers; every cell becomes a trimmed JSON string value.

application/json (max 10 MiB):

{
  "schema_name": "post",
  "spreadsheet_data": [ { "title": "Row 1" }, { "title": "Row 2" } ]
}
  • schema_name (string, required)
  • spreadsheet_data (array of objects, required)

Response

{ "inserted": 2 }

Returns 201 Created. Each row becomes a draft document; the document title is the row's first string value.

Example β€” JSON

curl -X POST '{CMS_API_URL}/csv?website_id=<uuid>' \
  -H 'Authorization: Bearer <workos-jwt>' \
  -H 'Content-Type: application/json' \
  -d '{"schema_name":"post","spreadsheet_data":[{"title":"Row 1"}]}'

Example β€” multipart CSV

curl -X POST '{CMS_API_URL}/csv?website_id=<uuid>' \
  -H 'Authorization: Bearer <workos-jwt>' \
  -F 'schema_name=post' \
  -F 'file=@data.csv'

Errors

  • 400 β€” parse errors, missing schema_name/file, non-array spreadsheet_data, non-object rows, or empty CSV
  • 401 β€” missing or invalid JWT
  • 500 β€” insert failure
Continue Reading
Previousβ€ΉGET /usageNextPATCH /csvβ€Ί