---
title: "Create a data table"
method: POST
path: "/v1/projects/{project_id}/create_table"
tags: ["DataTable"]
---

# Create a data table

`POST /v1/projects/{project_id}/create_table`

## Request

- Base URL: `https://api.telerivet.com`
- URL: `https://api.telerivet.com/v1/projects/{project_id}/create_table`
- Auth: one of:
  - HTTP basic
  - OAuth 2 (authorization code, authorization URL `https://telerivet.com/oauth/authorize`, token URL `https://api.telerivet.com/oauth/token`)

Creates a new data table, which must have a unique name within the project. (To retrieve an existing data table by name if it already exists, use project.getOrCreateDataTable.)

## Path parameters

- `project_id` string, required

## Request body

- object
  - `name` string, required: Name of the data table (must be unique within the project)
  - `show_add_row` boolean: Whether to allow adding or importing rows via the web app
  - `show_stats` boolean: Whether to show summary charts (pie charts, bar charts, tables of top values) for this data table in the web app
  - `show_contact_columns` boolean: Whether to show 'Contact Name' and 'Phone Number' columns in the web app
  - `solution_id` string: ID of the solution that this data table is part of, if any
  - `vars` object: Custom variables and values to set for this data table. Variable names may be up to 32 characters in length and can contain the characters a-z, A-Z, 0-9, and _. Values may be strings, numbers, or boolean (true/false). String values may be up to 4096 bytes in length when encoded as UTF-8. Up to 100 variables are supported per object. Setting a variable to null will delete the variable.

## Response `200`

Successful response

- DataTable: Represents a custom data table that can store arbitrary rows. For example, poll services use data tables to store a row for each response. DataTables are schemaless -- each row simply stores custom variables. Each variable name is equivalent to a different "column" of the data table. Telerivet refers to these variables/columns as "fields", and automatically creates a new field for each variable name used in a row of the table.
  - `id` string: ID of the data table
  - `name` string: Name of the data table
  - `num_rows` integer: Number of rows in the table. For performance reasons, this number may sometimes be out-of-date.
  - `show_add_row` boolean: Whether to allow adding or importing rows via the web app
  - `show_stats` boolean: Whether to show summary charts (pie charts, bar charts, tables of top values) for this data table in the web app
  - `show_contact_columns` boolean: Whether to show 'Contact Name' and 'Phone Number' columns in the web app
  - `vars` object: Custom variables stored for this data table. Variable names may be up to 32 characters in length and can contain the characters a-z, A-Z, 0-9, and _. Values may be strings, numbers, or boolean (true/false). String values may be up to 4096 bytes in length when encoded as UTF-8. Up to 100 variables are supported per object. Setting a variable to null will delete the variable.
  - `solution_id` string, nullable: ID of the solution that this data table belongs to, if any
  - `project_id` string: ID of the project this data table belongs to
  - `url` string: URL to this data table in the Telerivet web app

## Other responses

- `400`: Invalid request parameters
- `401`: Invalid or missing API key or Bearer token
- `404`: Resource not found

---

[API](https://skmtc.dev/telerivet/apis/telerivet-api.md) · [All operations](https://skmtc.dev/telerivet/apis/telerivet-api/llms.txt) · [OpenAPI document](https://skmtc.dev/telerivet/apis/telerivet-api/revisions/4e14b1c8d917?raw)
