--- title: API CRUD GET | Datasquirel docs description: Fetch records from a Datasquirel table via the API page_title: GET page_description: Read one or more records from a table using the Datasquirel REST API or npm package. --- ## Overview Use the GET endpoint to fetch records from any table in your database. You can retrieve all records, a single record by ID, or a filtered and paginated subset. ## npm Package ```javascript import datasquirel from "@moduletrace/datasquirel"; const result = await datasquirel.crud.get({ dbName: "my_database", tableName: "users", apiKey: process.env.DATASQUIREL_API_KEY, }); // result.payload contains the array of records console.log(result.payload); ``` ### Get a Single Record by ID ```javascript const result = await datasquirel.crud.get({ dbName: "my_database", tableName: "users", targetId: 42, apiKey: process.env.DATASQUIREL_API_KEY, }); ``` ### Filtered and Paginated Query ```javascript const result = await datasquirel.crud.get({ dbName: "my_database", tableName: "posts", apiKey: process.env.DATASQUIREL_API_KEY, query: { limit: 10, page: 1, order: { field: "created_at", strategy: "DESC" }, query: { is_published: { value: 1, equality: "=" }, }, }, }); ``` ## Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `dbName` | `string` | Yes | The database slug to query | | `tableName` | `string` | Yes | The table to read from | | `apiKey` | `string` | No | API key. Falls back to the `DATASQUIREL_API_KEY` environment variable | | `targetId` | `string \| number` | No | Fetch a single record by its `id` | | `query` | `object` | No | Filter, pagination, and ordering options (see below) | ### Query Options | Option | Type | Description | |--------|------|-------------| | `limit` | `number` | Maximum number of records to return | | `page` | `number` | Page number for pagination (1-based) | | `offset` | `number` | Number of records to skip | | `order` | `{ field, strategy }` | Sort by a field — `strategy` is `"ASC"` or `"DESC"` | | `selectFields` | `string[]` | Only return these fields | | `omitFields` | `string[]` | Exclude these fields from the result | | `query` | `object` | Field-level filters — each key is a field name with a `value` and `equality` | | `fullTextSearch` | `object` | Full-text search across specified fields | | `join` | `array` | JOIN conditions against other tables | ## REST API ``` GET /api/v1/crud/{dbName}/{tableName} GET /api/v1/crud/{dbName}/{tableName}/{id} ``` **Headers:** ``` Authorization: Bearer YOUR_API_KEY ``` ## Response ```json { "success": true, "payload": [ { "id": 1, "name": "Alice", "email": "alice@example.com" }, { "id": 2, "name": "Bob", "email": "bob@example.com" } ] } ``` A successful response has `success: true` and a `payload` array. A single-record fetch (by `targetId`) returns `payload` as an object.