> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.glideapps.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Rows to Table

> Adds rows to a Big Table

Add one or more rows to an existing Big Table.

Row IDs for the added rows are returned in the response in the same order as the input row data is passed in the request. Row data may be passed in JSON, CSV, or TSV format.

If a column is not included in the passed row data, it will be empty in the added row. If a column is passed that does not exist in the table schema, or with a value that does not match the column's type, the default behavior is for no rows to be added and the API call to [return an error](/api-reference/v2/general/errors#invalid-row-data). However, you can control this behavior with the `onSchemaError` query parameter.

## Examples

<AccordionGroup>
  <Accordion title="Add Rows Inline">
    If you want to add a small number of rows to a table, you can do so by providing the data inline (being sure that row object structure matches the table schema):

    ```json theme={null}
    [
      {
        "fullName": "Alex Bard",
        "ageInYears": 30,
        "hiredOn": "2021-07-03"
      }, {
        "fullName": "Alicia Hines",
        "ageInYears": 34,
        "hiredOn": "2023-01-015"
      }
    ]
    ```

    However, this is only appropriate for relatively small dataset (a few hundred rows or less, depending on schema complexity). If you need to work with a larger dataset you should utilize stashing.
  </Accordion>

  <Accordion title="Add Rows from Stash">
    [Stashing](/api-reference/v2/stashing/introduction) is our process for handling the upload of large datasets. Break down your dataset into smaller, more manageable, pieces and [upload them to a single stash ID](/api-reference/v2/stashing/put-stashes-serial).

    Then, to add all the row data in a stash to the table in a single atomic operation, use the `$stashID` reference in the `rows` field instead of providing the data inline:

    ```json theme={null}
    {
        "$stashID": "20240215-job32"
    }
    ```
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml post /tables/{tableID}/rows
openapi: 3.0.0
info:
  title: ''
  version: 0.0.1
servers:
  - description: Production
    url: https://api.glideapps.com
security:
  - BearerAuth: []
tags: []
paths:
  /tables/{tableID}/rows:
    post:
      description: Adds rows to a Big Table
      parameters:
        - name: tableID
          in: path
          schema:
            type: string
            description: ID of the table, e.g., `2a1bad8b-cf7c-44437-b8c1-e3782df6`
            example: 2a1bad8b-cf7c-44437-b8c1-e3782df6
          required: true
        - name: onSchemaError
          in: query
          schema:
            type: string
            enum:
              - abort
              - dropColumns
              - updateSchema
            description: >-
              The action to take when the passed data does not match the table
              schema:


              - `abort`: Abort the entire operation and return an error.

              - `dropColumns`: Ignore the data that caused the error, and do not
              import those columns in the affected rows.

              - `updateSchema`: Update the schema as needed to add any missing
              columns or widen the data types of existing columns, and then
              import the data from them.
            example: updateSchema
          required: false
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: array
                  items:
                    type: object
                    additionalProperties: {}
                    description: "A row object conforming to the schema of the table, where keys are the column IDs and values are the column values:\n\n```json\n{\n\t\"fullName\": \"Alex Bard\",\n\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\"totalAmount\": 34.50,\n\t\"amountPaid\": 0\n}\n```"
                    example:
                      fullName: Alex Bard
                      invoiceDate: '2024-07-29T14:04:15.561Z'
                      totalAmount: 34.5
                      amountPaid: 0
                  description: "A collection of row objects conforming to the schema of the table where keys are the column IDs and values are the column values:\n\n```json\n[\n\t{\n\t\t\"fullName\": \"Alex Bard\",\n\t\t\"invoiceDate\": \"2024-07-29T14:04:15.561Z\",\n\t\t\"totalAmount\": 34.50,\n\t\t\"amountPaid\": 0\n\t},\n\t{\n\t\t\"fullName\": \"Alicia Hines\",\n\t\t\"invoiceDate\": \"2023-06-15T10:30:00.000Z\",\n\t\t\"totalAmount\": 50.75,\n\t\t\"amountPaid\": 20\n\t}\n]\n```"
                  example:
                    - fullName: Alex Bard
                      invoiceDate: '2024-07-29T14:04:15.561Z'
                      totalAmount: 34.5
                      amountPaid: 0
                    - fullName: Alicia Hines
                      invoiceDate: '2023-06-15T10:30:00.000Z'
                      totalAmount: 50.75
                      amountPaid: 20
                - type: object
                  properties:
                    $stashID:
                      type: string
                      pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$
                      description: ID of the stash, e.g., `20240215-job32`
                      example: 20240215-job32
                  required:
                    - $stashID
                  additionalProperties: false
                  description: >-
                    A single reference to a [stash](/api-reference/v2/stashing)
                    whose data should be used.
          text/csv:
            schema:
              type: string
              description: >-
                A CSV string. The first line is column IDs, and each subsequent
                line is a row of data.
              example: |-
                Name,Age,Birthday
                Alice,25,2024-08-29T09:46:16.722Z
                Bob,30,2020-01-15T09:00:16.722Z
          text/tab-separated-values:
            schema:
              type: string
              description: >-
                A TSV string. The first line is column IDs, and each subsequent
                line is a row of data.
              example: "Name\tAge\tBirthday\nAlice\t25\t2024-08-29T09:46:16.722Z\nBob\t30\t2020-01-15T09:00:16.722Z"
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      rowIDs:
                        type: array
                        items:
                          type: string
                          description: ID of the row, e.g., `zcJWnyI8Tbam21V34K8MNA`
                          example: zcJWnyI8Tbam21V34K8MNA
                        description: "Row IDs of added rows, returned in the same order as the input rows, e.g., \n\n```json\n[\n\t\"zcJWnyI8Tbam21V34K8MNA\",\n\t\"93a19-cf7c-44437-b8c1-e9acbbb\"\n]\n```"
                        example:
                          - zcJWnyI8Tbam21V34K8MNA
                          - 93a19-cf7c-44437-b8c1-e9acbbb
                    required:
                      - rowIDs
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '402':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - payment_required
                      message:
                        type: string
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '404':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - table_not_found
                          - table_not_big_table
                      message:
                        type: string
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '422':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - column_has_invalid_value
                          - column_id_reserved
                          - column_id_not_found
                      message:
                        type: string
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer authentication header of the form Bearer `<token>`, where
        `<token>` is your [auth
        token](/api-reference/v2/general/authentication).

````