# list

## HTTP Request

```http
GET /api/v1/tables/:tableReference/variables
GET /api/v1/tables/:tableReference/uploads/:uploadReference/variables
GET /api/v1/queries/:queryId/variables
```

## Path parameters

| Parameter       |                                                                                                                                           |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| tableReference  | A qualified reference to the table. See [referencing resources](https://docs.redivis.com/api/referencing-resources) for more information. |
| uploadReference | A qualified reference to the upload. Follows the form `upload_name:id`                                                                    |
| queryId         | The id of a [query](https://docs.redivis.com/api/rest-api/queries)                                                                        |

## Query parameters

| Parameter  |                                                                                                                                    |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| maxResults | Default 100. Cannot exceed 10,000                                                                                                  |
| pageToken  | For paginating through results, provide the value returned from the previous table.listVariables call                              |
| isFileId   | Optional. If present, will only return variables that contain ids referencing [Files](https://docs.redivis.com/api/rest-api/files) |

{% hint style="info" %}
This endpoint extends the [general API structure](https://docs.redivis.com/api/rest-api/general-structure).
{% endhint %}

## Authorization

Metadata access to the table is required. If a table's data is not public, your access token must have one of the following scopes:

* data.metadata
* data.data
* data.edit

[Learn more about authorization.](https://docs.redivis.com/api/rest-api/authorization)

## Request body

The request body must be empty.

## Response body

Returns a JSON representation of a list of [variable resources](https://docs.redivis.com/api/resource-definitions/variable).

```javascript
{
    "kind": "tableList",
    "nextPageToken": string,
    "results": [
        object(variable.list)
    ]
}
```
