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

# Get record

> Retrieve a single record by its ID with options to specify field projections and output format.



## OpenAPI

````yaml /swagger.json get /table/{tableId}/record/{recordId}
openapi: 3.0.0
info:
  version: 1.0.0
  title: Teable App
  description: Manage Data as easy as drink a cup of tea
  x-logo:
    backgroundColor: '#F0F0F0'
    altText: Teable logo
servers:
  - url: https://app.teable.ai/api
security: []
paths:
  /table/{tableId}/record/{recordId}:
    get:
      tags:
        - record
      summary: Get record
      description: >-
        Retrieve a single record by its ID with options to specify field
        projections and output format.
      parameters:
        - schema:
            type: string
          required: true
          name: tableId
          in: path
        - schema:
            type: string
          required: true
          name: recordId
          in: path
        - schema:
            type: array
            items:
              type: string
            description: >-
              If you want to get only some fields, pass in this parameter,
              otherwise all visible fields will be obtained, The parameter value
              depends on the specified fieldKeyType to determine whether it is
              name or id
          required: false
          description: >-
            If you want to get only some fields, pass in this parameter,
            otherwise all visible fields will be obtained, The parameter value
            depends on the specified fieldKeyType to determine whether it is
            name or id
          name: projection
          in: query
        - schema:
            type: string
            enum:
              - json
              - text
            default: json
            description: >-
              Define the return value formate, you can set it to text if you
              only need simple string value
          required: false
          description: >-
            Define the return value formate, you can set it to text if you only
            need simple string value
          name: cellFormat
          in: query
        - schema:
            type: string
            enum:
              - id
              - name
              - dbFieldName
            default: name
            description: >-
              Define the key type of record.fields[key], You can click
              "systemInfo" in the field edit box to get fieldId or enter the
              table design screen with all the field details
          required: false
          description: >-
            Define the key type of record.fields[key], You can click
            "systemInfo" in the field edit box to get fieldId or enter the table
            design screen with all the field details
          name: fieldKeyType
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The record id.
                  name:
                    type: string
                    description: primary field value
                  fields:
                    type: object
                    additionalProperties:
                      nullable: true
                    description: >-
                      Objects with a fields key mapping fieldId or field name to
                      value for that field.
                  autoNumber:
                    type: number
                    description: Auto number, a unique identifier for each record
                  createdTime:
                    type: string
                    description: Created time, date ISO string (new Date().toISOString).
                  lastModifiedTime:
                    type: string
                    description: >-
                      Last modified time, date ISO string (new
                      Date().toISOString).
                  createdBy:
                    type: string
                    description: Created by, user name
                  lastModifiedBy:
                    type: string
                    description: Last modified by, user name
                  permissions:
                    type: object
                    additionalProperties:
                      type: object
                      additionalProperties:
                        type: boolean
                    description: Permissions for the record
                  undeletable:
                    type: boolean
                    description: Whether the record is undeletable
                required:
                  - id
                  - fields
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://app.teable.ai/api/table/%7BtableId%7D/record/%7BrecordId%7D?projection=SOME_ARRAY_VALUE&cellFormat=SOME_STRING_VALUE&fieldKeyType=SOME_STRING_VALUE' \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
        - lang: JavaScript
          source: >-
            const url =
            'https://app.teable.ai/api/table/%7BtableId%7D/record/%7BrecordId%7D?projection=SOME_ARRAY_VALUE&cellFormat=SOME_STRING_VALUE&fieldKeyType=SOME_STRING_VALUE';

            const options = {method: 'GET', headers: {Authorization: 'Bearer
            REPLACE_BEARER_TOKEN'}};


            try {
              const response = await fetch(url, options);
              const data = await response.json();
              console.log(data);
            } catch (error) {
              console.error(error);
            }
        - lang: Node.js
          source: |-
            const http = require('https');

            const options = {
              method: 'GET',
              hostname: 'app.teable.ai',
              port: null,
              path: '/api/table/%7BtableId%7D/record/%7BrecordId%7D?projection=SOME_ARRAY_VALUE&cellFormat=SOME_STRING_VALUE&fieldKeyType=SOME_STRING_VALUE',
              headers: {
                Authorization: 'Bearer REPLACE_BEARER_TOKEN'
              }
            };

            const req = http.request(options, function (res) {
              const chunks = [];

              res.on('data', function (chunk) {
                chunks.push(chunk);
              });

              res.on('end', function () {
                const body = Buffer.concat(chunks);
                console.log(body.toString());
              });
            });

            req.end();
        - lang: Python
          source: >-
            import http.client


            conn = http.client.HTTPSConnection("app.teable.ai")


            headers = { 'Authorization': "Bearer REPLACE_BEARER_TOKEN" }


            conn.request("GET",
            "/api/table/%7BtableId%7D/record/%7BrecordId%7D?projection=SOME_ARRAY_VALUE&cellFormat=SOME_STRING_VALUE&fieldKeyType=SOME_STRING_VALUE",
            headers=headers)


            res = conn.getresponse()

            data = res.read()


            print(data.decode("utf-8"))
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````