Get a single initiative
curl --request GET \
--url https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id} \
--header 'Authorization: Bearer <token>' \
--header 'x-tenant-slug: <x-tenant-slug>'import requests
url = "https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}"
headers = {
"x-tenant-slug": "<x-tenant-slug>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-tenant-slug': '<x-tenant-slug>', Authorization: 'Bearer <token>'}
};
fetch('https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}', 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://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}",
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>",
"x-tenant-slug: <x-tenant-slug>"
],
]);
$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://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-tenant-slug", "<x-tenant-slug>")
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://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}")
.header("x-tenant-slug", "<x-tenant-slug>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-tenant-slug"] = '<x-tenant-slug>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"notes": "<string>",
"startQuarter": "2026_Q1",
"endQuarter": "2026_Q3",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"status": {
"id": "<string>",
"name": "<string>",
"color": "<string>"
},
"subProduct": {
"id": "<string>",
"name": "<string>",
"product": {
"id": "<string>",
"name": "<string>"
}
},
"classification": {
"id": "<string>",
"name": "<string>",
"color": "<string>"
},
"user": {
"id": "<string>",
"name": "<string>",
"email": "<string>"
},
"tags": [
{
"tag": {
"id": "<string>",
"name": "<string>"
}
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}Initiatives
Get Initiative
GET
/
initiatives
/
{id}
Get a single initiative
curl --request GET \
--url https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id} \
--header 'Authorization: Bearer <token>' \
--header 'x-tenant-slug: <x-tenant-slug>'import requests
url = "https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}"
headers = {
"x-tenant-slug": "<x-tenant-slug>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-tenant-slug': '<x-tenant-slug>', Authorization: 'Bearer <token>'}
};
fetch('https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}', 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://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}",
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>",
"x-tenant-slug: <x-tenant-slug>"
],
]);
$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://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-tenant-slug", "<x-tenant-slug>")
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://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}")
.header("x-tenant-slug", "<x-tenant-slug>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://crossproductroadmapbackend.vercel.app/api/v1/initiatives/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-tenant-slug"] = '<x-tenant-slug>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"notes": "<string>",
"startQuarter": "2026_Q1",
"endQuarter": "2026_Q3",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"status": {
"id": "<string>",
"name": "<string>",
"color": "<string>"
},
"subProduct": {
"id": "<string>",
"name": "<string>",
"product": {
"id": "<string>",
"name": "<string>"
}
},
"classification": {
"id": "<string>",
"name": "<string>",
"color": "<string>"
},
"user": {
"id": "<string>",
"name": "<string>",
"email": "<string>"
},
"tags": [
{
"tag": {
"id": "<string>",
"name": "<string>"
}
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
ApiKeyAuthOAuthBearer
Generate an API key in your workspace Settings → API Keys. Pass it as Authorization: Bearer tab_<key> on every request.
Headers
Your workspace slug (e.g. acme).
Path Parameters
Response
OK
Example:
"2026_Q1"
Example:
"2026_Q3"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Assigned owner
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I