Duplicate a record
Creates a copy of a record with its duplicable field values and its page content, titled `<source> copy` unless `title` is given. Requires `records:write` on the database; if copying the page content fails, the copy is deleted rather than left incomplete.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/workspaces/string/databases/string/records/string/duplicate" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "1d8a44e0-7c93-4f21-b60a-3e8d2f5a9c14", "workspaceId": "4b81aa0c-6d2f-4b19-9f0e-1a7c3d5e8b02", "databaseId": "9f2c1e7a-3b58-4d0c-8e27-6a1f9d4b3c85", "contentSurfaceId": "string", "title": "Ship the desktop app", "data": { "status": "in_progress", "due": "2026-08-01" }, "relations": {}, "computed": {}, "system": {}, "related": {}, "archived": false, "externalId": "string", "createdByUserId": "string", "updatedByUserId": "string", "createdAt": "2026-07-10T08:00:00.000Z", "updatedAt": "2026-07-14T11:26:02.000Z" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}Create a record from a record template
Creates a record whose values are the template's `data` overlaid with any `data` sent in the request, then copies the template's page content into the new record. Clients may preallocate `id` so an optimistic row keeps its identity. Requires `records:write` on the database; if copying the page content fails, the new record is deleted so no half-built record remains.
Import records into a database from CSV
Parses a CSV document and creates one record per row, mapping columns to fields either through explicit `mappings` or by matching column headers to field keys and labels, and reports how many rows were created, skipped, and which failed. Requires `records:write` on the database. Rejected when the CSV exceeds 10 MB, 500 columns, or 50,000 rows, when it has duplicate or unterminated columns, when a mapping targets the same field twice, or when a mapped column is not present; `onError` decides whether a bad row aborts the import or is skipped.