---
title: Create
url: https://www.tines.com/docs/api/records/create/
updated: 2026-07-15T13:53:42+00:00
description: Create a new record.
---

*[tines.com](https://www.tines.com/llms.txt) › [Docs](https://www.tines.com/docs/llms.txt) › [Tines API](https://www.tines.com/docs/api/llms.txt) › [Records](https://www.tines.com/llm/docs/api/records.md)*

# Create

*[View on tines.com](https://www.tines.com/docs/api/records/create/)*

## Description

Create a new record.

`POST /api/v1/records` is not idempotent — every successful call creates a new row, so a blind retry after a timeout or network error can produce a duplicate. See [Best practices](/api/records/best-practices) for retry and rate-limit guidance.

See the [Get Records API](/api/records/get) to learn more about records.

## Request

HTTP Method: **POST**

| Query parameter   | Description                                                                                                                                                                                                                                                                                      |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| resolve_artifacts | **Optional** Set to the string `"false"` to have Artifacts (large text) fields in the response return a reference object containing the artifact ID instead of the full contents. Defaults to inlining the contents. See the [Get Records API](/api/records/get) for the reference-object shape. |

| Body parameter | Description                                                                                                                                                                                                        |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| record_type_id | Specifies the id of the record type for which the record is being created.                                                                                                                                         |
| field_values   | An array of `{ field_id, value }` objects. Each object must include a `field_id`, which identifies the record field, and a `value`, specifying the data to be assigned to that field for the newly created record. |
| case_ids       | **Optional** An array of case IDs to link to this record. At most 5 per request.                                                                                                                                   |
| test_mode      | **Optional** Set to `true` (JSON boolean) or `"true"` (string) to create the record in test mode. Defaults to `false`.                                                                                             |

```bash
curl -X POST \
  "https://<tenant-domain>/api/v1/records?resolve_artifacts=false" \
  -H 'content-type: application/json' \
  -H 'Authorization: Bearer <<CREDENTIAL.tines_api_key>>' \
  -d '{
      "record_type_id": "1",
      "field_values": [{ "field_id": "1", "value": "Test" }],
      "case_ids": ["14","19"]
    }'
```

## Response

A successful request will return a JSON object representing the created record.

### Field description

| Parameter   | Description                                                       |
| ----------- | ----------------------------------------------------------------- |
| id          | The record ID.                                                    |
| record_type | The record type.                                                  |
| test_mode   | Boolean indicator of whether the record was created in test mode. |
| records     | The captured data for the given instance of the record type.      |
| created_at  | ISO 8601 timestamp representing when the record was created.      |
| updated_at  | ISO 8601 timestamp representing when the record was last updated. |
| case_ids    | The case IDs linked to this record.                               |
| result      | The captured data in key-value format.                            |

### Sample response

The `records` and `result` collections always include the built-in default fields alongside any user fields you set, even if you didn't pass a value for them.

```json
{
  "id": 1973,
  "created_at": "2024-06-25T14:41:23Z",
  "updated_at": "2024-06-25T14:41:23Z",
  "record_type": {
    "id": 1097,
    "name": "Tines Sample Alert"
  },
  "test_mode": false,
  "records": [
    {
      "field_id": "5999",
      "name": "Affected user email",
      "value": "john@example.com"
    },
    { "field_id": "5998", "name": "Source", "value": "Login alerts" },
    { "field_id": "5997", "name": "Description", "value": "Suspicious login" },
    { "field_id": "5996", "name": "Severity", "value": "High" },
    { "field_id": "5995", "name": "Record ID", "value": 1973 },
    { "field_id": "5994", "name": "Story name", "value": null },
    { "field_id": "5991", "name": "Timestamp", "value": "2024-06-25 15:41:23" },
    { "field_id": "5990", "name": "Updated at", "value": "2024-06-25 15:41:23" }
  ],
  "case_ids": [14, 19],
  "result": {
    "id": 1973,
    "updated_at": "2024-06-25T14:41:23Z",
    "case_ids": [14, 19],
    "Affected user email": "john@example.com",
    "Source": "Login alerts",
    "Description": "Suspicious login",
    "Severity": "High",
    "Record ID": 1973,
    "Story name": null,
    "Timestamp": "2024-06-25 15:41:23",
    "Updated at": "2024-06-25 15:41:23"
  }
}
```
