> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://help.sigmacomputing.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://help.sigmacomputing.com/_mcp/server.

# Get workbook schema

GET https://api.sigmacomputing.com/v2/workbooks/{workbookId}/schema

The Workbook Schema API is deprecated as of December 15, 2023. This endpoint is no longer compatible with workbook layouts. Workflows that use this endpoint must be replaced with the new endpoints listed below. The components in Workbook Schema API are available through individual endpoints to minimize the retrieval of unnecessary data.

* [GET v2/workbooks/\{workbookId}/pages](https://help.sigmacomputing.com/reference/listworkbookpages)
* [GET v2/workbooks/\{workbookId}/pages/\{pageId}/elements](https://help.sigmacomputing.com/reference/listworkbookpageelements)
* [GET v2/workbooks/\{workbookId}/queries](https://help.sigmacomputing.com/reference/listworkbookqueries)
* [GET v2/workbooks/\{workbookId}/elements/\{elementId}/query](https://help.sigmacomputing.com/reference/getelementquery)

Reference: https://help.sigmacomputing.com/reference/get-workbook-schema

## Authentication

- OAuth2 — send the obtained token as `Authorization: Bearer <token>`

## Servers

- `https://api.sigmacomputing.com` (Server for GCP (US) hosted organizations, default)
- `https://api.sa.gcp.sigmacomputing.com` (Server for GCP (KSA) hosted organizations)
- `https://aws-api.sigmacomputing.com` (Server for AWS US (West) hosted organizations)
- `https://api.us-a.aws.sigmacomputing.com` (Server for AWS US (East) hosted organizations)
- `https://api.ca.aws.sigmacomputing.com` (Server for AWS Canada hosted organizations)
- `https://api.eu.aws.sigmacomputing.com` (Server for AWS Europe hosted organizations)
- `https://api.au.aws.sigmacomputing.com` (Server for AWS Australia and APAC hosted organizations)
- `https://api.uk.aws.sigmacomputing.com` (Server for AWS UK hosted organizations)
- `https://api.us.azure.sigmacomputing.com` (Server for Azure US hosted organizations)
- `https://api.eu.azure.sigmacomputing.com` (Server for Azure Europe hosted organizations)
- `https://api.ca.azure.sigmacomputing.com` (Server for Azure Canada hosted organizations)
- `https://api.uk.azure.sigmacomputing.com` (Server for Azure United Kingdom hosted organizations)
- `https://api.au.azure.sigmacomputing.com` (Server for Azure Australia hosted organizations)

## Request

### Path parameters

- `workbookId` (string, required)

### Query parameters

- `includeSql` (boolean, optional)
- `tag` (string, optional)

## Response

### 200

The response body.

- `workbookId` (string, required) — Unique identifier of the workbook.
- `workbookUrlId` (string, required)
- `pages` (map from string to any, required)
- `sheets` (map from string to any, required)
- `variables` (map from string to any, required)
- `elements` (map from string to any, required)
- `sqlQueries` (map from string to string, required)
- `sqlQueryErrors` (map from string to object, required)
  - `message` (string, required)

## Examples

**Response**

```json
{
  "workbookId": "88889999-aaaa-bbbb-cccc-ddddeeeeffff",
  "workbookUrlId": "57a96EMo3GVJG73179MV2l",
  "pages": {
    "page1": "[Object Page_t]"
  },
  "sheets": {
    "sheet1": "[Object Sheet_t]"
  },
  "variables": {
    "variable1": "[Object Variable_t]"
  },
  "elements": {
    "element1": "[Object Element_t]",
    "element2": "[Object Element_t]"
  },
  "sqlQueries": {
    "element1": "SELECT customerID, sum(AMOUNT) FROM ORDERS GROUP BY customerID"
  },
  "sqlQueryErrors": {
    "element2": {
      "message": "SQL compilation error: xxx"
    }
  }
}
```

**SDK Code**

```python Response Example
import requests

url = "https://api.sigmacomputing.com/v2/workbooks/workbookId/schema"

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

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

print(response.json())
```

```javascript Response Example
const url = 'https://api.sigmacomputing.com/v2/workbooks/workbookId/schema';
const options = {method: 'GET', headers: {Authorization: '<token>.'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Response Example
package main

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

func main() {

	url := "https://api.sigmacomputing.com/v2/workbooks/workbookId/schema"

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

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

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Response Example
require 'uri'
require 'net/http'

url = URI("https://api.sigmacomputing.com/v2/workbooks/workbookId/schema")

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

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

response = http.request(request)
puts response.read_body
```

```java Response Example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.sigmacomputing.com/v2/workbooks/workbookId/schema")
  .header("Authorization", "<token>.")
  .asString();
```

```php Response Example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.sigmacomputing.com/v2/workbooks/workbookId/schema', [
  'headers' => [
    'Authorization' => '<token>.',
  ],
]);

echo $response->getBody();
```

```csharp Response Example
using RestSharp;

var client = new RestClient("https://api.sigmacomputing.com/v2/workbooks/workbookId/schema");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "<token>.");
IRestResponse response = client.Execute(request);
```

```swift Response Example
import Foundation

let headers = ["Authorization": "<token>."]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.sigmacomputing.com/v2/workbooks/workbookId/schema")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```