> ## 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 ids from range

> Retrieve record and field identifiers based on the selected range coordinates in a table



## OpenAPI

````yaml /swagger.json get /table/{tableId}/selection/range-to-id
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}/selection/range-to-id:
    get:
      tags:
        - selection
      summary: Get ids from range
      description: >-
        Retrieve record and field identifiers based on the selected range
        coordinates in a table
      parameters:
        - schema:
            type: string
          required: true
          name: tableId
          in: path
        - schema:
            type: string
            example: viwXXXXXXX
            description: >-
              Set the view you want to fetch, default is first view. result will
              filter and sort by view options.
          required: false
          description: >-
            Set the view you want to fetch, default is first view. result will
            filter and sort by view options.
          name: viewId
          in: query
        - schema:
            anyOf:
              - type: string
              - type: boolean
            description: >-
              When a viewId is specified, configure this to true will ignore the
              view's filter, sort, etc
          required: false
          description: >-
            When a viewId is specified, configure this to true will ignore the
            view's filter, sort, etc
          name: ignoreViewQuery
          in: query
        - schema:
            type: string
            example: '{field} = ''Completed'' AND {field} > 5'
            deprecated: true
          required: false
          name: filterByTql
          in: query
        - schema:
            type: string
            description: >-
              A filter object for complex query conditions based on fields,
              operators, and values. Use our visual query builder at
              https://app.teable.ai/developer/tool/query-builder to build
              filters.
          required: false
          description: >-
            A filter object for complex query conditions based on fields,
            operators, and values. Use our visual query builder at
            https://app.teable.ai/developer/tool/query-builder to build filters.
          name: filter
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                minItems: 1
                maxItems: 1
              - type: array
                items:
                  type: string
                minItems: 2
                maxItems: 2
              - type: array
                items:
                  anyOf:
                    - type: string
                    - anyOf:
                        - type: string
                        - type: boolean
                minItems: 3
                maxItems: 3
            default:
              - searchValue
              - fieldIdOrName
              - false
            description: Search for records that match the specified field and value
          required: false
          description: Search for records that match the specified field and value
          name: search
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                minItems: 2
                maxItems: 2
              - type: string
            example:
              - fldXXXXXXX
              - recXXXXXXX
            description: >-
              Filter out the records that can be selected by a given link cell
              from the relational table. For example, if the specified field is
              one to many or one to one relationship, recordId for which the
              field has already been selected will not appear.
          required: false
          description: >-
            Filter out the records that can be selected by a given link cell
            from the relational table. For example, if the specified field is
            one to many or one to one relationship, recordId for which the field
            has already been selected will not appear.
          name: filterLinkCellCandidate
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                minItems: 2
                maxItems: 2
              - type: string
            example:
              - fldXXXXXXX
              - recXXXXXXX
            description: >-
              Filter out selected records based on this link cell from the
              relational table. Note that viewId, filter, and orderBy will not
              take effect in this case because selected records has it own
              order. Ignoring recordId gets all the selected records for the
              field
          required: false
          description: >-
            Filter out selected records based on this link cell from the
            relational table. Note that viewId, filter, and orderBy will not
            take effect in this case because selected records has it own order.
            Ignoring recordId gets all the selected records for the field
          name: filterLinkCellSelected
          in: query
        - schema:
            type: array
            items:
              type: string
            description: Filter selected records by record ids
          required: false
          description: Filter selected records by record ids
          name: selectedRecordIds
          in: query
        - schema:
            type: string
            description: >-
              An array of sort objects that specifies how the records should be
              ordered.
          required: false
          description: >-
            An array of sort objects that specifies how the records should be
            ordered.
          name: orderBy
          in: query
        - schema:
            type: string
            description: >-
              An array of group objects that specifies how the records should be
              grouped.
          required: false
          description: >-
            An array of group objects that specifies how the records should be
            grouped.
          name: groupBy
          in: query
        - schema:
            type: string
            description: An array of group ids that specifies which groups are collapsed
          required: false
          description: An array of group ids that specifies which groups are collapsed
          name: collapsedGroupIds
          in: query
        - schema:
            type: string
            example: qry_xxxxxxxx
            description: >-
              When provided, other query parameters will be merged with the
              saved ones.
          required: false
          description: >-
            When provided, other query parameters will be merged with the saved
            ones.
          name: queryId
          in: query
        - 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
          required: false
          description: >-
            If you want to get only some fields, pass in this parameter,
            otherwise all visible fields will be obtained
          name: projection
          in: query
        - schema:
            type: string
            description: >-
              The parameter "ranges" is used to represent the coordinates
              [column, row][] of a selected range in a table. 
            example: '[[0, 0], [1, 1]]'
          required: true
          description: >-
            The parameter "ranges" is used to represent the coordinates [column,
            row][] of a selected range in a table. 
          name: ranges
          in: query
        - schema:
            type: string
            enum:
              - rows
              - columns
            description: Types of non-contiguous selections
            example: columns
          required: false
          description: Types of non-contiguous selections
          name: type
          in: query
        - schema:
            type: string
            enum:
              - recordId
              - fieldId
              - all
            description: Define which Id to return.
          required: true
          description: Define which Id to return.
          name: returnType
          in: query
      responses:
        '200':
          description: Copy content
          content:
            application/json:
              schema:
                type: object
                properties:
                  recordIds:
                    type: array
                    items:
                      type: string
                  fieldIds:
                    type: array
                    items:
                      type: string
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'https://app.teable.ai/api/table/%7BtableId%7D/selection/range-to-id?viewId=viwXXXXXXX&ignoreViewQuery=SOME_STRING_VALUE&filterByTql=%7Bfield%7D+%3D+%27Completed%27+AND+%7Bfield%7D+%3E+5&filter=SOME_STRING_VALUE&search=SOME_ARRAY_VALUE&filterLinkCellCandidate=fldXXXXXXX&filterLinkCellCandidate=recXXXXXXX&filterLinkCellSelected=fldXXXXXXX&filterLinkCellSelected=recXXXXXXX&selectedRecordIds=SOME_ARRAY_VALUE&orderBy=SOME_STRING_VALUE&groupBy=SOME_STRING_VALUE&collapsedGroupIds=SOME_STRING_VALUE&queryId=qry_xxxxxxxx&projection=SOME_ARRAY_VALUE&ranges=%5B%5B0%2C+0%5D%2C+%5B1%2C+1%5D%5D&type=columns&returnType=SOME_STRING_VALUE' \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
        - lang: JavaScript
          source: >-
            const url =
            'https://app.teable.ai/api/table/%7BtableId%7D/selection/range-to-id?viewId=viwXXXXXXX&ignoreViewQuery=SOME_STRING_VALUE&filterByTql=%7Bfield%7D+%3D+%27Completed%27+AND+%7Bfield%7D+%3E+5&filter=SOME_STRING_VALUE&search=SOME_ARRAY_VALUE&filterLinkCellCandidate=fldXXXXXXX&filterLinkCellCandidate=recXXXXXXX&filterLinkCellSelected=fldXXXXXXX&filterLinkCellSelected=recXXXXXXX&selectedRecordIds=SOME_ARRAY_VALUE&orderBy=SOME_STRING_VALUE&groupBy=SOME_STRING_VALUE&collapsedGroupIds=SOME_STRING_VALUE&queryId=qry_xxxxxxxx&projection=SOME_ARRAY_VALUE&ranges=%5B%5B0%2C+0%5D%2C+%5B1%2C+1%5D%5D&type=columns&returnType=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/selection/range-to-id?viewId=viwXXXXXXX&ignoreViewQuery=SOME_STRING_VALUE&filterByTql=%7Bfield%7D+%3D+%27Completed%27+AND+%7Bfield%7D+%3E+5&filter=SOME_STRING_VALUE&search=SOME_ARRAY_VALUE&filterLinkCellCandidate=fldXXXXXXX&filterLinkCellCandidate=recXXXXXXX&filterLinkCellSelected=fldXXXXXXX&filterLinkCellSelected=recXXXXXXX&selectedRecordIds=SOME_ARRAY_VALUE&orderBy=SOME_STRING_VALUE&groupBy=SOME_STRING_VALUE&collapsedGroupIds=SOME_STRING_VALUE&queryId=qry_xxxxxxxx&projection=SOME_ARRAY_VALUE&ranges=%5B%5B0%2C+0%5D%2C+%5B1%2C+1%5D%5D&type=columns&returnType=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/selection/range-to-id?viewId=viwXXXXXXX&ignoreViewQuery=SOME_STRING_VALUE&filterByTql=%7Bfield%7D+%3D+%27Completed%27+AND+%7Bfield%7D+%3E+5&filter=SOME_STRING_VALUE&search=SOME_ARRAY_VALUE&filterLinkCellCandidate=fldXXXXXXX&filterLinkCellCandidate=recXXXXXXX&filterLinkCellSelected=fldXXXXXXX&filterLinkCellSelected=recXXXXXXX&selectedRecordIds=SOME_ARRAY_VALUE&orderBy=SOME_STRING_VALUE&groupBy=SOME_STRING_VALUE&collapsedGroupIds=SOME_STRING_VALUE&queryId=qry_xxxxxxxx&projection=SOME_ARRAY_VALUE&ranges=%5B%5B0%2C+0%5D%2C+%5B1%2C+1%5D%5D&type=columns&returnType=SOME_STRING_VALUE",
            headers=headers)


            res = conn.getresponse()

            data = res.read()


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

````