Skip to main content
GET
/
cms
/
hubdb
/
2026-03
/
tables
Get all published tables
curl --request GET \
  --url https://api.hubapi.com/cms/hubdb/2026-03/tables \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.hubapi.com/cms/hubdb/2026-03/tables"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.hubapi.com/cms/hubdb/2026-03/tables', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/cms/hubdb/2026-03/tables",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.hubapi.com/cms/hubdb/2026-03/tables"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.hubapi.com/cms/hubdb/2026-03/tables")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.hubapi.com/cms/hubdb/2026-03/tables")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "results": [
    {
      "allowChildTables": true,
      "allowPublicApiAccess": true,
      "columnCount": 123,
      "columns": [
        {
          "deleted": true,
          "description": "<string>",
          "id": "<string>",
          "label": "<string>",
          "name": "<string>",
          "createdAt": "2023-11-07T05:31:56Z",
          "createdBy": {
            "email": "<string>",
            "firstName": "<string>",
            "id": "<string>",
            "lastName": "<string>"
          },
          "createdByUserId": 123,
          "foreignColumnId": 123,
          "foreignIds": [
            {
              "id": "<string>",
              "name": "<string>",
              "type": "<string>"
            }
          ],
          "foreignIdsById": {},
          "foreignIdsByName": {},
          "foreignTableId": 123,
          "optionCount": 123,
          "options": [
            {
              "createdAt": "2023-11-07T05:31:56Z",
              "id": "<string>",
              "label": "<string>",
              "name": "<string>",
              "order": 123,
              "type": "<string>",
              "updatedAt": "2023-11-07T05:31:56Z",
              "createdBy": {
                "email": "<string>",
                "firstName": "<string>",
                "id": "<string>",
                "lastName": "<string>"
              },
              "createdByUserId": 123,
              "updatedBy": {
                "email": "<string>",
                "firstName": "<string>",
                "id": "<string>",
                "lastName": "<string>"
              },
              "updatedByUserId": 123
            }
          ],
          "updatedAt": "2023-11-07T05:31:56Z",
          "updatedBy": {
            "email": "<string>",
            "firstName": "<string>",
            "id": "<string>",
            "lastName": "<string>"
          },
          "updatedByUserId": 123,
          "width": 123
        }
      ],
      "createdAt": "2023-11-07T05:31:56Z",
      "deleted": true,
      "deletedAt": "2023-11-07T05:31:56Z",
      "dynamicMetaTags": {},
      "enableChildTablePages": true,
      "id": "<string>",
      "label": "<string>",
      "name": "<string>",
      "published": true,
      "publishedAt": "2023-11-07T05:31:56Z",
      "rowCount": 123,
      "updatedAt": "2023-11-07T05:31:56Z",
      "useForPages": true,
      "createdBy": {
        "email": "<string>",
        "firstName": "<string>",
        "id": "<string>",
        "lastName": "<string>"
      },
      "isOrderedManually": true,
      "updatedBy": {
        "email": "<string>",
        "firstName": "<string>",
        "id": "<string>",
        "lastName": "<string>"
      }
    }
  ],
  "total": 123,
  "paging": {
    "next": {
      "after": "<string>",
      "link": "<string>"
    },
    "prev": {
      "before": "<string>",
      "link": "<string>"
    }
  }
}
{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}

Supported products

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Query Parameters

after
string

The paging cursor token of the last successfully read resource will be returned as the paging.next.after JSON property of a paged response containing more results.

archived
boolean

Specifies whether to return archived tables. Defaults to false.

contentType
string

Specifies the content type for the response.

createdAfter
string<date-time>

Only return tables created after the specified time.

createdAt
string<date-time>

Only return tables created at exactly the specified time.

createdBefore
string<date-time>

Only return tables created before the specified time.

isGetLocalizedSchema
boolean

Indicates whether to retrieve the localized schema for the tables.

limit
integer<int32>

The maximum number of results to return. Default is 1000.

sort
string[]

Specifies which fields to use for sorting results. Valid fields are name, createdAt, updatedAt, createdBy, updatedBy. createdAt will be used by default.

updatedAfter
string<date-time>

Only return tables last updated after the specified time.

updatedAt
string<date-time>

Only return tables last updated at exactly the specified time.

updatedBefore
string<date-time>

Only return tables last updated before the specified time.

Response

successful operation

results
object[]
required
total
integer<int32>
required
paging
object
Last modified on March 31, 2026