curl --request GET \
--url https://app.octavehq.com/api/v2/product/get \
--header 'api_key: <api-key>'import requests
url = "https://app.octavehq.com/api/v2/product/get"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://app.octavehq.com/api/v2/product/get', 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://app.octavehq.com/api/v2/product/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$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://app.octavehq.com/api/v2/product/get"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.octavehq.com/api/v2/product/get")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/product/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"oId": "p_1234",
"createdAt": "2021-01-01",
"data": {
"type": "PRODUCT",
"internalName": "<string>",
"summary": "<string>",
"distinctCapabilities": [
"Capability 1",
"Capability 2"
],
"keyFunctionality": [
"Functionality 1",
"Functionality 2"
],
"differentiatedValue": [
"Differentiated Value 1",
"Differentiated Value 2"
],
"statusQuo": [
"Status Quo 1",
"Status Quo 2"
],
"challengesAddressed": [
"Challenge 1",
"Challenge 2"
],
"customerBenefits": [
"Benefit 1",
"Benefit 2"
],
"customFields": [
{
"title": "<string>",
"value": [
"<string>"
]
}
],
"additionalProperties": {}
},
"user": {
"oId": "u_1234",
"firstName": "John",
"lastName": "Doe"
},
"workspace": {
"oId": "wa_1234"
},
"updatedAt": "2021-01-01",
"archivedAt": "2021-01-01",
"deletedAt": "2021-01-01",
"name": "Product Name",
"internalName": "Product Internal Name",
"description": "Product Description",
"primaryUrl": "https://www.product.com",
"releaseNotesUrls": [
"https://www.product.com/changelog"
],
"active": true,
"qualifyingQuestions": [
{
"question": "<string>",
"rationale": "<string>",
"fitType": "GOOD",
"weight": "MEDIUM",
"archivedAt": "2023-11-07T05:31:56Z"
}
]
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}Get Product
Get Product by OId
curl --request GET \
--url https://app.octavehq.com/api/v2/product/get \
--header 'api_key: <api-key>'import requests
url = "https://app.octavehq.com/api/v2/product/get"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://app.octavehq.com/api/v2/product/get', 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://app.octavehq.com/api/v2/product/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$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://app.octavehq.com/api/v2/product/get"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.octavehq.com/api/v2/product/get")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/product/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"oId": "p_1234",
"createdAt": "2021-01-01",
"data": {
"type": "PRODUCT",
"internalName": "<string>",
"summary": "<string>",
"distinctCapabilities": [
"Capability 1",
"Capability 2"
],
"keyFunctionality": [
"Functionality 1",
"Functionality 2"
],
"differentiatedValue": [
"Differentiated Value 1",
"Differentiated Value 2"
],
"statusQuo": [
"Status Quo 1",
"Status Quo 2"
],
"challengesAddressed": [
"Challenge 1",
"Challenge 2"
],
"customerBenefits": [
"Benefit 1",
"Benefit 2"
],
"customFields": [
{
"title": "<string>",
"value": [
"<string>"
]
}
],
"additionalProperties": {}
},
"user": {
"oId": "u_1234",
"firstName": "John",
"lastName": "Doe"
},
"workspace": {
"oId": "wa_1234"
},
"updatedAt": "2021-01-01",
"archivedAt": "2021-01-01",
"deletedAt": "2021-01-01",
"name": "Product Name",
"internalName": "Product Internal Name",
"description": "Product Description",
"primaryUrl": "https://www.product.com",
"releaseNotesUrls": [
"https://www.product.com/changelog"
],
"active": true,
"qualifyingQuestions": [
{
"question": "<string>",
"rationale": "<string>",
"fitType": "GOOD",
"weight": "MEDIUM",
"archivedAt": "2023-11-07T05:31:56Z"
}
]
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}Authorizations
Query Parameters
Product OId
Response
Product data
Show child attributes
Show child attributes
The ID of the product
1"p_1234"
The date and time the product was created
"2021-01-01"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The date and time the product was updated
"2021-01-01"
The date and time the product was archived
"2021-01-01"
The date and time the product was deleted
"2021-01-01"
The external facing name of the product
"Product Name"
The internal name of the product
"Product Internal Name"
The description of the product
"Product Description"
The primary URL of the product
"https://www.product.com"
Watched release-notes pages for this product; Octave re-reads each on a schedule and proposes library updates from what shipped
5["https://www.product.com/changelog"]
Whether the product is active and can be used
true
Show child attributes
Show child attributes