---
title: Line protocol reference
description: InfluxDB 3 Core uses line protocol to write data points. It is a text-based format that provides the table, tag set, field set, and timestamp of a data point.
url: https://docs.influxdata.com/influxdb3/core/reference/line-protocol/
estimated_tokens: 2605
product: InfluxDB 3 Core
version: core
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/core/reference/line-protocol/
date: '2025-12-12T18:02:14-05:00'
lastmod: '2025-12-12T18:02:14-05:00'
---

InfluxDB 3 Core uses line protocol to write data points.
It is a text-based format that provides the table, tag set, field set, and
timestamp of a data point.

* [Elements of line protocol](#elements-of-line-protocol)
* [Data types and format](#data-types-and-format)
* [Quotes](#quotes)
* [Special characters](#special-characters)
* [Comments](#comments)
* [Naming restrictions](#naming-restrictions)
* [Duplicate points](#duplicate-points)

```js
// Syntax
<table>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]

// Example
myTable,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000
```

Lines separated by the newline character `\n` represent a single point
in InfluxDB. Line protocol is whitespace-sensitive.

> [!Note]
> Line protocol does not support the newline character `\n` in tag or field values.

## Elements of line protocol

myTable,tag1=val1,tag2=val2 field1="v1",field2=1i 0000000000000000000

### Table

(Required)
The table name.
InfluxDB accepts one table per point.*Table names are case-sensitive and subject to [naming restrictions](#naming-restrictions).*

***Data type:** [String](#string)*

> [!Note]
> If familiar with previous InfluxDB versions, “**table**” is synonymous with
> “**measurement**.”

### Tag set

(***Optional***)
All tag key-value pairs for the point.
Key-value relationships are denoted with the `=` operand.
Multiple tag key-value pairs are comma-delimited.*Tag keys and tag values are case-sensitive.
Tag keys are subject to [naming restrictions](#naming-restrictions).
Tag values cannot be empty; instead, omit the tag from the tag set.*

***Key data type:** [String](#string)*  
***Value data type:** [String](#string)*

### Field set

(Required)
All field key-value pairs for the point.
Points must have at least one field.*Field keys and string values are case-sensitive.
Field keys are subject to [naming restrictions](#naming-restrictions).*

***Key data type:** [String](#string)*  
***Value data type:** [Float](#float) | [Integer](#integer) | [UInteger](#uinteger) | [String](#string) | [Boolean](#boolean)*

> [!Note]
> *Always double quote string field values. More on quotes [below](#quotes).*
> ```
> tableName fieldKey="field string value" 1556813561098000000
> ```

```sh
tableName fieldKey="field string value" 1556813561098000000
```

### Timestamp

(***Optional***)
The [Unix timestamp](/influxdb3/core/reference/glossary/#unix-timestamp) for the data point.
InfluxDB accepts one timestamp per point.
If no timestamp is provided, InfluxDB uses the system time (UTC) of its host machine.

***Data type:** [Unix timestamp](#unix-timestamp)*

#### Important notes about timestamps

* To ensure a data point includes the time a metric is observed (not received by InfluxDB),
  include the timestamp.
* If your timestamps are not in nanoseconds, specify the precision of your timestamps
  when writing the data to InfluxDB 3 Core.

### Whitespace

Whitespace in line protocol determines how InfluxDB interprets the data point.
The **first unescaped space** delimits the table and the tag set from the field set.
The **second unescaped space** delimits the field set from the timestamp.

myTable,tag1=val1,tag2=val2 field1="v1",field2=1i 0000000000000000000

## Data types and format

### Float

IEEE-754 64-bit floating-point numbers.
Default numerical type.*InfluxDB supports scientific notation in float field values.*

##### Float field value examples

```js
myTable fieldKey=1.0
myTable fieldKey=1
myTable fieldKey=-1.234456e+78
```

### Integer

Signed 64-bit integers.
Trailing `i` on the number specifies an integer.

|    Minimum integer    |   Maximum integer    |
|-----------------------|----------------------|
|`-9223372036854775808i`|`9223372036854775807i`|

##### Integer field value examples

```js
myTable fieldKey=1i
myTable fieldKey=12485903i
myTable fieldKey=-12485903i
```

### UInteger

Unsigned 64-bit integers.
Trailing `u` on the number specifies an unsigned integer.

|Minimum uinteger|   Maximum uinteger    |
|----------------|-----------------------|
|      `0u`      |`18446744073709551615u`|

##### UInteger field value examples

```js
myTable fieldKey=1u
myTable fieldKey=12485903u
```

### String

Plain text string.

|                 Element                 |Maximum length|
|-----------------------------------------|--------------|
|Table name, tag key, tag value, field key|     64KB     |
|               Field value               |     1MB      |

##### String example

```sh
# String table name, field key, and field value
myTable fieldKey="this is a string"
```

### Boolean

Stores `true` or `false` values.

|Boolean value|          Accepted syntax          |
|-------------|-----------------------------------|
|    True     | `t`, `T`, `true`, `True`, `TRUE`  |
|    False    |`f`, `F`, `false`, `False`, `FALSE`|

##### Boolean field value examples

```js
myTable fieldKey=true
myTable fieldKey=false
myTable fieldKey=t
myTable fieldKey=f
myTable fieldKey=TRUE
myTable fieldKey=FALSE
```

> [!Note]
> Do not quote boolean field values.
> Quoted field values are interpreted as strings.

### Unix timestamp

Unix timestamp in a [specified precision](/influxdb3/core/reference/glossary/#unix-timestamp).
Default precision is nanoseconds (`ns`).

|  Minimum timestamp   |  Maximum timestamp  |
|----------------------|---------------------|
|`-9223372036854775806`|`9223372036854775806`|

##### Unix timestamp example

```js
myTableName fieldKey="fieldValue" 1556813561098000000
```

## Quotes

Line protocol supports single and double quotes as described in the following table:

|  Element  |             Double quotes             |             Single quotes             |
|-----------|---------------------------------------|---------------------------------------|
|   Table   |*Limited* <sup class="required">*</sup>|*Limited* <sup class="required">*</sup>|
|  Tag key  |*Limited* <sup class="required">*</sup>|*Limited* <sup class="required">*</sup>|
| Tag value |*Limited* <sup class="required">*</sup>|*Limited* <sup class="required">*</sup>|
| Field key |*Limited* <sup class="required">*</sup>|*Limited* <sup class="required">*</sup>|
|Field value|           **Strings only**            |                 Never                 |
| Timestamp |                 Never                 |                 Never                 |

<sup class="required">*</sup> *Line protocol accepts double and single quotes in
table names, tag keys, tag values, and field keys, but interprets them as
part of the name, key, or value.*

## Special Characters

Line protocol supports special characters in [string elements](#string).
In the following contexts, it requires escaping certain characters with a backslash (`\`):

|  Element  |    Escape characters    |
|-----------|-------------------------|
|   Table   |      Comma, Space       |
|  Tag key  |Comma, Equals Sign, Space|
| Tag value |Comma, Equals Sign, Space|
| Field key |Comma, Equals Sign, Space|
|Field value| Double quote, Backslash |

You do not need to escape other special characters.

##### Examples of special characters in line protocol

```sh
# Table name with spaces
my\ Table fieldKey="string value"

# Double quotes in a string field value
myTable fieldKey="\"string\" within a string"

# Tag keys and values with spaces
myTable,tag\ Key1=tag\ Value1,tag\ Key2=tag\ Value2 fieldKey=100

# Emojis
myTable,tagKey=🍭 fieldKey="Launch 🚀" 1556813561098000000
```

### Escaping backslashes

Line protocol supports both literal backslashes and backslashes as an escape character.
With two contiguous backslashes, the first is interpreted as an escape character.
For example:

|Backslashes|Interpreted as|
|-----------|--------------|
|    `\`    |     `\`      |
|   `\\`    |     `\`      |
|   `\\\`   |     `\\`     |
|  `\\\\`   |     `\\`     |
|  `\\\\\`  |    `\\\`     |
| `\\\\\\`  |    `\\\`     |

## Comments

Line protocol interprets `#` at the beginning of a line as a comment character
and ignores all subsequent characters until the next newline `\n`.

```sh
# This is a comment
myTable fieldKey="string value" 1556813561098000000
```

## Naming restrictions

Table names, tag keys, and field keys are alphanumeric and must begin with a
letter or a number. They can contain dashes (`-`) and underscores (`_`).

## Duplicate points

A point is uniquely identified by the table name, tag set, and timestamp.
If you submit line protocol with the same table, tag set, and timestamp,
but with a different field set, the field set becomes the union of the old
field set and the new field set, where any conflicts favor the new field set.

#### Related

* [Write data to InfluxDB 3 Core](/influxdb3/core/write-data/)

[write](/influxdb3/core/tags/write/)[line protocol](/influxdb3/core/tags/line-protocol/)[syntax](/influxdb3/core/tags/syntax/)
| Minimum integer | Maximum integer |
| --- | --- |
| Minimum integer | Maximum integer |
| -9223372036854775808i | 9223372036854775807i |

| Minimum uinteger | Maximum uinteger |
| --- | --- |
| Minimum uinteger | Maximum uinteger |
| 0u | 18446744073709551615u |

| Element | Maximum length |
| --- | --- |
| Element | Maximum length |
| Table name, tag key, tag value, field key | 64KB |
| Field value | 1MB |

| Boolean value | Accepted syntax |
| --- | --- |
| Boolean value | Accepted syntax |
| True | t ,  T ,  true ,  True ,  TRUE |
| False | f ,  F ,  false ,  False ,  FALSE |

| Minimum timestamp | Maximum timestamp |
| --- | --- |
| Minimum timestamp | Maximum timestamp |
| -9223372036854775806 | 9223372036854775806 |

| Element | Double quotes | Single quotes |
| --- | --- | --- |
| Element | Double quotes | Single quotes |
| Table | Limited   * | Limited   * |
| Tag key | Limited   * | Limited   * |
| Tag value | Limited   * | Limited   * |
| Field key | Limited   * | Limited   * |
| Field value | Strings only | Never |
| Timestamp | Never | Never |

| Element | Escape characters |
| --- | --- |
| Element | Escape characters |
| Table | Comma, Space |
| Tag key | Comma, Equals Sign, Space |
| Tag value | Comma, Equals Sign, Space |
| Field key | Comma, Equals Sign, Space |
| Field value | Double quote, Backslash |

| Backslashes | Interpreted as |
| --- | --- |
| Backslashes | Interpreted as |
| \ | \ |
| \\ | \ |
| \\\ | \\ |
| \\\\ | \\ |
| \\\\\ | \\\ |
| \\\\\\ | \\\ |
