Get projects

Returns one board of your org by its key — the repository name.

GET /v1/task/projects/{key}

Addresshttps://api.hanzo.ai/v1/task/projects/{key}
MethodGET
Operationget_task_projects_by_key
AuthAuthorization: Bearer $HANZO_API_KEY

Returns one board of your org by its key — the repository name. 404 when your org has no repository under that key, or when your own forge account cannot see it.

Request

1 field.

FieldInTypeRequiredDescription
keypathstringyesKey is the project's org-unique handle: 2-8 uppercase alphanumerics starting with a letter ("ENG", "OPS2").

Response

StatusBodyMeaning
200task.boardViewok
defaultproblem-detailsrefused

200 body — 7 fields.

FieldInTypeAlwaysDescription
createdAtbodyinteger (int64)—CreatedAt is when the board was created, in unix seconds.
descriptionbodystring—Description is whatever an index board was created with.
idbodystring—ID is the board's opaque handle, and it is NOT how you address it — Key is.
keybodystring—Key addresses the board everywhere else — /v1/task/projects/<key>/issues — and prefixes every issue identifier on it.
namebodystring—Name is the board's display name.
orgbodystring—Org is the IAM org the board belongs to, taken from the validated principal and never from the request.
updatedAtbodyinteger (int64)—UpdatedAt is when the board record last changed, in unix seconds — the BOARD, not the work on it, so filing an issue does not move it.

Failure carries the platform error shape — see Errors.

Examples

hanzo task projects get <key>
import { Configuration, TaskApi } from 'hanzoai';

const api = new TaskApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getTaskProjectsByKey({ key: 'key' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import TaskApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = TaskApi(client).get_task_projects_by_key(key='key')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.TaskAPI.GetTaskProjectsByKey(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, task_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = task_api::get_task_projects_by_key(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.TaskApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new TaskApi(client).getTaskProjectsByKey();
curl https://api.hanzo.ai/v1/task/projects/<key> \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches task through the task tool, which names its 10 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_task_board"
         }
       }
     }'

Task API · All Hanzo APIs · Interactive reference

Was this page useful?