--- title: API CRUD POST | Datasquirel docs description: Create a new record in a Datasquirel table via the API page_title: POST page_description: Insert a new record into a table using the Datasquirel REST API or npm package. --- ## Overview Use the POST endpoint to insert a new record into a table. Provide the data as a plain object — the keys must match your table's field names. ## npm Package ```javascript import datasquirel from "@moduletrace/datasquirel"; const result = await datasquirel.crud.insert({ dbName: "my_database", tableName: "users", body: { name: "Alice", email: "alice@example.com", is_active: 1, }, apiKey: process.env.DATASQUIREL_API_KEY, }); // result.payload is the inserted record's ID console.log(result.payload); ``` ### Insert Multiple Records (Batch) You can insert multiple records in a single request by passing an array in a `batchData` field: ```javascript const result = await datasquirel.crud.insert({ dbName: "my_database", tableName: "tags", body: { batchData: [ { name: "javascript" }, { name: "typescript" }, { name: "sql" }, ]}, apiKey: process.env.DATASQUIREL_API_KEY, }); ``` ## Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `dbName` | `string` | Yes | The database slug | | `tableName` | `string` | Yes | The table to insert into | | `body` | `object` | Yes | The record to insert. Keys must match field names | | `apiKey` | `string` | No | API key. Falls back to `DATASQUIREL_API_KEY` environment variable | ## REST API ``` POST /api/v1/crud/{dbName}/{tableName} ``` **Headers:** ``` Authorization: Bearer YOUR_API_KEY Content-Type: application/json ``` **Body:** ```json { "name": "Alice", "email": "alice@example.com", "is_active": 1 } ``` ## Response ```json { "success": true, "payload": 7 } ``` A successful response returns `success: true` and `payload` containing the `insertId` (the auto-incremented `id` of the new record).