Open API examples

These practical examples demonstrate how to interact with the Teamhood Open API using JavaScript and PowerShell. Each scenario shows how to authenticate and use key API endpoints to manage your workspaces, boards, items, and more.


API Base URL and Authentication

Teamhood is a multi-tenant application. This means each organization (tenant) has its own API subdomain.

✅ Base URL Format

Use the following pattern for all API requests:

https://api-YOURTENANT.teamhood.com

For example, if your tenant is acme, your API calls should go to:

https://api-acme.teamhood.com

🔑 Open API Key for authentication

You can find open API key in your integration settings page, inside Teamhood web application.

image 42

Variable Placeholders

All requests require an API key in the X-ApiKey header.

⚠️ Replace the following placeholders in examples:

PlaceholderDescription
YOURTENANTYour Teamhood tenant name (e.g., acme)
YOUR_API_KEYYour API key
YOUR_WORKSPACE_IDThe ID of your workspace
YOUR_BOARD_IDThe ID of the board
YOUR_ROW_IDThe ID of the row
YOUR_STATUS_IDThe ID of the status

1. List All Workspaces

This request fetches the list of workspaces available to your API key.

# javascript
fetch('https://api-YOURTENANT.teamhood.com/api/v1/workspaces', {
    method: 'GET',
    headers: {
        'X-ApiKey': 'YOUR_API_KEY'
    }
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
# powershell
Invoke-RestMethod -Method Get `
    -Uri "https://api-YOURTENANT.teamhood.com/api/v1/workspaces" `
    -Headers @{ "X-ApiKey" = "YOUR_API_KEY" }

2. List Boards in a Workspace

Use this to retrieve all boards under a specific workspace.

# javascript
const workspaceId = 'YOUR_WORKSPACE_ID';
fetch(`https://api-YOURTENANT.teamhood.com/api/v1/workspaces/${workspaceId}/boards`, {
    method: 'GET',
    headers: {
        'X-ApiKey': 'YOUR_API_KEY'
    }
})
.then(res => res.json())
.then(data => console.log(data));
# powershell
$workspaceId = "YOUR_WORKSPACE_ID"
Invoke-RestMethod -Method Get `
    -Uri "https://api-YOURTENANT.teamhood.com/api/v1/workspaces/$workspaceId/boards" `
    -Headers @{ "X-ApiKey" = "YOUR_API_KEY" }

3. List Rows in a Board

Rows represent horizontal groupings in a board (e.g. “Development”, “QA”).

# javascript
const boardId = 'YOUR_BOARD_ID';
fetch(`https://api-YOURTENANT.teamhood.com/api/v1/boards/${boardId}/rows`, {
    method: 'GET',
    headers: {
        'X-ApiKey': 'YOUR_API_KEY'
    }
})
.then(res => res.json())
.then(data => console.log(data));
# powershell
$boardId = "YOUR_BOARD_ID"
Invoke-RestMethod -Method Get `
    -Uri "https://api-YOURTENANT.teamhood.com/api/v1/boards/$boardId/rows" `
    -Headers @{ "X-ApiKey" = "YOUR_API_KEY" }

4. Create a New Item

Creates a new task or item with custom fields.

# javascript
const payload = {
    title: "Sample Task",
    description: "Created via API",
    budget: 25.5,
    workspaceId: "YOUR_WORKSPACE_ID",
    boardId: "YOUR_BOARD_ID",
    rowId: "YOUR_ROW_ID",
    statusId: "YOUR_STATUS_ID",
    customFields: [
        { name: "Material", value: "PVC" },
        { name: "Length (m)", value: "3.3" }
    ]
};
fetch('https://api-YOURTENANT.teamhood.com/api/v1/items', {
    method: 'POST',
    headers: {
        'X-ApiKey': 'YOUR_API_KEY',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
})
.then(res => res.json())
.then(data => console.log(data));
# powershell
$body = @{
    title       = "Sample Task"
    description = "Created via API"
    budget      = 25.5
    workspaceId = "YOUR_WORKSPACE_ID"
    boardId     = "YOUR_BOARD_ID"
    rowId       = "YOUR_ROW_ID"
    statusId    = "YOUR_STATUS_ID"
    customFields = @(
        @{ name = "Material"; value = "PVC" },
        @{ name = "Length (m)"; value = "3.3" }
    )
} | ConvertTo-Json -Depth 3
Invoke-RestMethod -Method Post `
    -Uri "https://api-YOURTENANT.teamhood.com/api/v1/items" `
    -Headers @{ "X-ApiKey" = "YOUR_API_KEY"; "Content-Type" = "application/json" } `
    -Body $body

5. Find All Items in a Board

Use query parameters to find all items under a workspace and board.

# javascript
const workspaceId = "YOUR_WORKSPACE_ID";
const boardId = "YOUR_BOARD_ID";
fetch(`https://api-YOURTENANT.teamhood.com/api/v1/items?workspaceId=${workspaceId}&boardId=${boardId}`, {
    method: 'GET',
    headers: {
        'X-ApiKey': 'YOUR_API_KEY'
    }
})
.then(res => res.json())
.then(data => console.log(data));
# powershell
$workspaceId = "YOUR_WORKSPACE_ID"
$boardId = "YOUR_BOARD_ID"
Invoke-RestMethod -Method Get `
    -Uri "https://api-YOURTENANT.teamhood.com/api/v1/items?workspaceId=$workspaceId&boardId=$boardId" `
    -Headers @{ "X-ApiKey" = "YOUR_API_KEY" }

6. List All Users in Your Teamhood Account

Lists all users available under your organization.

# javascript
fetch('https://api-YOURTENANT.teamhood.com/api/v1/users', {
    method: 'GET',
    headers: {
        'X-ApiKey': 'YOUR_API_KEY'
    }
})
.then(res => res.json())
.then(data => console.log(data));
# powershell
Invoke-RestMethod -Method Get `
    -Uri "https://api-YOURTENANT.teamhood.com/api/v1/users" `
    -Headers @{ "X-ApiKey" = "YOUR_API_KEY" }

Full API Endpoint Reference

A complete categorized list of Teamhood API endpoints.

📎 Attachments

  • GET /api/v1/attachments/{id}
  • PUT /api/v1/attachments/{id}
  • DELETE /api/v1/attachments/{id}
  • GET /api/v1/attachments/{id}/content
  • POST /api/v1/attachments

🗂 Boards

  • GET /api/v1/boards/{boardId}/rows
  • GET /api/v1/boards/{boardId}/statuses
  • POST /api/v1/boards

✅ Items

  • GET /api/v1/items
  • POST /api/v1/items
  • GET /api/v1/items/{itemId}
  • PUT /api/v1/items/{itemId}
  • DELETE /api/v1/items/{itemId}
  • GET /api/v1/items/{itemId}/attachments

📌 Rows

  • POST /api/v1/rows

🧱 Templates

  • GET /api/v1/templates/workspace
  • GET /api/v1/templates/board

⏱ Timelogs

  • POST /api/v1/timelogs

👥 Users

  • GET /api/v1/users

🏢 Workspaces

  • GET /api/v1/workspaces
  • POST /api/v1/workspaces
  • GET /api/v1/workspaces/{workspaceId}
  • PUT /api/v1/workspaces/{workspaceId}/users/{userId}
  • GET /api/v1/workspaces/{workspaceId}/boards

🔗 Related Resources

Teamhood uses cookies, to personalize content, ads and analyze traffic. By continuing to browse or pressing "Accept" you agree to our Cookie Policy.