> 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 a workbook

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

This endpoint retrieves a workbook by its unique identifier (`workbookId`). It provides detailed information about the workbook, including its name, URL, path, and other metadata. You can use this endpoint to fetch specific workbook details for display or further processing within client applications.

### Usage notes
- The **workbookId** parameter must be a valid UUID that uniquely identifies the workbook. Invalid or nonexistent IDs return an error. Retrieve the **workbookId** by calling the [/v2/workbooks](https://help.sigmacomputing.com/reference/list-workbooks) endpoint.

### Usage scenarios
- **Data retrieval**: Developers can use this endpoint to programmatically retrieve details about a specific workbook to display its content or metadata in a custom user interface.
- **Integration**: This endpoint is crucial for integrations where other systems need to fetch workbook details based on an ID provided through another interface or workflow.

### Best practices
- Validate the **workbookId** on the client side before making a request to avoid unnecessary server load caused by invalid requests.

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

## 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

- `includeTaggedSourceUrlId` (boolean, optional)

## Response

### 200

The response body.

- `workbookId` (string, required) — Unique identifier of the workbook.
- `workbookUrlId` (string, required)
- `name` (string, required)
- `url` (string, required)
- `path` (string, required)
- `latestVersion` (double, required)
- `ownerId` (string, required)
- `createdBy` (string, required) — The identifier of the user who created this object.
- `updatedBy` (string, required) — The identifier of the user or process that last updated this object.
- `createdAt` (datetime, required) — When the object was created.
- `updatedAt` (datetime, required) — When the object was last updated.
- `isArchived` (boolean, optional)
- `tags` (list of object, optional)
  - `versionTagId` (string, required) — Unique identifier of the tag.
  - `name` (string, required)
  - `sourceWorkbookVersion` (double, required)
  - `taggedWorkbookId` (string, required) — Unique identifier of the tagged workbook.
  - `workbookTaggedAt` (datetime, required)
- `description` (string, optional)
- `taggedSourceUrlId` (string, optional) — For a workbook deployed to a tenant organization by a deployment policy with a version tag, the `urlId` of the original source workbook in the parent organization. Only present when `includeTaggedSourceUrlId=true` is included in the request.

## Examples

**Response**

```json
{
  "workbookId": "88889999-aaaa-bbbb-cccc-ddddeeeeffff",
  "workbookUrlId": "57a96EMo3GVJG73179MV2l",
  "name": "My workbook",
  "url": "https://example.com/workbooks/88889999-aaaa-bbbb-cccc-ddddeeeeffff",
  "path": "folder1",
  "latestVersion": 1,
  "ownerId": "user1",
  "createdBy": "user1",
  "updatedBy": "user2",
  "createdAt": "2022-01-01T00:00:00.000Z",
  "updatedAt": "2023-01-01T00:00:00.000Z",
  "isArchived": false,
  "tags": [
    {
      "versionTagId": "11111111-1111-1111-1111-111111111111",
      "name": "My tag",
      "sourceWorkbookVersion": 1,
      "taggedWorkbookId": "88889999-aaaa-bbbb-cccc-ddddeeeeffff",
      "workbookTaggedAt": "2022-02-01T00:00:00.000Z"
    }
  ],
  "description": "Describe my workbook"
}
```

**SDK Code**

```python Response Example
import requests

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

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

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

print(response.json())
```

```javascript Response Example
const url = 'https://api.sigmacomputing.com/v2/workbooks/workbookId';
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"

	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")

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")
  .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', [
  'headers' => [
    'Authorization' => '<token>.',
  ],
]);

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

```csharp Response Example
using RestSharp;

var client = new RestClient("https://api.sigmacomputing.com/v2/workbooks/workbookId");
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")! 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()
```