Get Opportunity Watch Detail
curl --request GET \
--url https://app.octavehq.com/api/v2/opportunity-watch/get \
--header 'api_key: <api-key>'import requests
url = "https://app.octavehq.com/api/v2/opportunity-watch/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/opportunity-watch/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/opportunity-watch/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/opportunity-watch/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/opportunity-watch/get")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/opportunity-watch/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"
},
"data": {
"opportunity": {
"oId": "<string>",
"name": "<string>",
"amount": 123,
"currency": "<string>",
"stageName": "<string>",
"stageCategory": "open",
"dealType": "<string>",
"closeDate": "<string>",
"crmAccountName": "<string>",
"crmAccountDomain": "<string>",
"ownerName": "<string>",
"createdDate": "<string>"
},
"accountLogo": "<string>",
"icpFit": {
"current": {
"oId": "<string>",
"createdAt": "<string>",
"overallScore": 123,
"overallRationale": "<string>",
"offeringName": "<string>",
"offeringOId": "<string>",
"offeringScore": 123,
"offeringRationale": "<string>",
"segmentName": "<string>",
"segmentOId": "<string>",
"segmentScore": 123,
"segmentRationale": "<string>",
"segmentLowConfidence": true,
"triggerSource": "<string>"
},
"previous": {
"oId": "<string>",
"createdAt": "<string>",
"overallScore": 123,
"overallRationale": "<string>",
"offeringName": "<string>",
"offeringOId": "<string>",
"offeringScore": 123,
"offeringRationale": "<string>",
"segmentName": "<string>",
"segmentOId": "<string>",
"segmentScore": 123,
"segmentRationale": "<string>",
"segmentLowConfidence": true,
"triggerSource": "<string>"
},
"history": [
{
"oId": "<string>",
"createdAt": "<string>",
"overallScore": 123,
"overallRationale": "<string>",
"offeringName": "<string>",
"offeringOId": "<string>",
"offeringScore": 123,
"offeringRationale": "<string>",
"segmentName": "<string>",
"segmentOId": "<string>",
"segmentScore": 123,
"segmentRationale": "<string>",
"segmentLowConfidence": true,
"triggerSource": "<string>"
}
]
},
"enrollment": {
"oId": "<string>",
"opportunityOId": "<string>",
"policyOId": "<string>",
"state": "auto_included",
"routedTier": "NOTE",
"enrolledAt": "<string>",
"lastRunAt": "<string>",
"policyName": "<string>",
"healthSnapshot": {
"overallHealth": "healthy",
"signalTypes": [
"<string>"
]
},
"healthComputedAt": "<string>",
"dealState": {
"version": 1,
"computedAt": "<string>",
"flags": [
{
"type": "SINGLE_THREADED_OBSERVED",
"detail": "<string>",
"evidenceOIds": [
"<string>"
],
"firstDetectedAt": "<string>"
}
],
"commitments": [
{
"findingOId": "<string>",
"description": "<string>",
"madeBy": "internal",
"madeAt": "<string>",
"sourceEventOId": "<string>",
"status": "open"
}
],
"competitors": [
{
"name": "<string>",
"entityOId": "<string>",
"firstDetectedAt": "<string>",
"sourceFindingOId": "<string>"
}
],
"committee": {
"knownPersonaCount": 123,
"engagedPersonaCount": 123,
"unengagedPersonaNames": [
"<string>"
]
},
"stageEvidence": {
"stageBand": "early",
"pendingTenetKeys": [
"<string>"
]
},
"objections": []
},
"committeePins": [
{
"contactOId": "<string>",
"email": "<string>",
"name": "<string>",
"role": "economic_buyer",
"pinnedAt": "<string>"
}
]
},
"outputs": [
{
"oId": "<string>",
"opportunityOId": "<string>",
"outputKey": "<string>",
"version": 123,
"mode": "freeform",
"modelTier": "NOTE",
"creditsCharged": 123,
"triggerKind": "opp_created",
"batchId": "<string>",
"createdAt": "<string>",
"supersededAt": "<string>",
"content": null
}
],
"outputVersionCounts": {},
"timeline": [
{
"oId": "<string>",
"opportunityOId": "<string>",
"entryType": "<string>",
"triggerKinds": [
"opp_created"
],
"summary": "<string>",
"outputKeysChanged": [
"<string>"
],
"creditsCharged": 123,
"occurredAt": "<string>"
}
],
"timelineHasMore": true
}
}{
"_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>"
}Opportunity Watch
Get Opportunity Watch Detail
Get the full Opportunity Watch record for a single deal: the opportunity, its enrollment (policy, state, routed model tier, last run time), every CURRENT output the loop has generated (health_check, suggested_actions, deal_positioning, win_loss_postmortem, etc — full content), plus the deal’s ICP Fit qualification snapshot, a version count per output key, and a page of its activity timeline.
GET
/
api
/
v2
/
opportunity-watch
/
get
Get Opportunity Watch Detail
curl --request GET \
--url https://app.octavehq.com/api/v2/opportunity-watch/get \
--header 'api_key: <api-key>'import requests
url = "https://app.octavehq.com/api/v2/opportunity-watch/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/opportunity-watch/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/opportunity-watch/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/opportunity-watch/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/opportunity-watch/get")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/opportunity-watch/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"
},
"data": {
"opportunity": {
"oId": "<string>",
"name": "<string>",
"amount": 123,
"currency": "<string>",
"stageName": "<string>",
"stageCategory": "open",
"dealType": "<string>",
"closeDate": "<string>",
"crmAccountName": "<string>",
"crmAccountDomain": "<string>",
"ownerName": "<string>",
"createdDate": "<string>"
},
"accountLogo": "<string>",
"icpFit": {
"current": {
"oId": "<string>",
"createdAt": "<string>",
"overallScore": 123,
"overallRationale": "<string>",
"offeringName": "<string>",
"offeringOId": "<string>",
"offeringScore": 123,
"offeringRationale": "<string>",
"segmentName": "<string>",
"segmentOId": "<string>",
"segmentScore": 123,
"segmentRationale": "<string>",
"segmentLowConfidence": true,
"triggerSource": "<string>"
},
"previous": {
"oId": "<string>",
"createdAt": "<string>",
"overallScore": 123,
"overallRationale": "<string>",
"offeringName": "<string>",
"offeringOId": "<string>",
"offeringScore": 123,
"offeringRationale": "<string>",
"segmentName": "<string>",
"segmentOId": "<string>",
"segmentScore": 123,
"segmentRationale": "<string>",
"segmentLowConfidence": true,
"triggerSource": "<string>"
},
"history": [
{
"oId": "<string>",
"createdAt": "<string>",
"overallScore": 123,
"overallRationale": "<string>",
"offeringName": "<string>",
"offeringOId": "<string>",
"offeringScore": 123,
"offeringRationale": "<string>",
"segmentName": "<string>",
"segmentOId": "<string>",
"segmentScore": 123,
"segmentRationale": "<string>",
"segmentLowConfidence": true,
"triggerSource": "<string>"
}
]
},
"enrollment": {
"oId": "<string>",
"opportunityOId": "<string>",
"policyOId": "<string>",
"state": "auto_included",
"routedTier": "NOTE",
"enrolledAt": "<string>",
"lastRunAt": "<string>",
"policyName": "<string>",
"healthSnapshot": {
"overallHealth": "healthy",
"signalTypes": [
"<string>"
]
},
"healthComputedAt": "<string>",
"dealState": {
"version": 1,
"computedAt": "<string>",
"flags": [
{
"type": "SINGLE_THREADED_OBSERVED",
"detail": "<string>",
"evidenceOIds": [
"<string>"
],
"firstDetectedAt": "<string>"
}
],
"commitments": [
{
"findingOId": "<string>",
"description": "<string>",
"madeBy": "internal",
"madeAt": "<string>",
"sourceEventOId": "<string>",
"status": "open"
}
],
"competitors": [
{
"name": "<string>",
"entityOId": "<string>",
"firstDetectedAt": "<string>",
"sourceFindingOId": "<string>"
}
],
"committee": {
"knownPersonaCount": 123,
"engagedPersonaCount": 123,
"unengagedPersonaNames": [
"<string>"
]
},
"stageEvidence": {
"stageBand": "early",
"pendingTenetKeys": [
"<string>"
]
},
"objections": []
},
"committeePins": [
{
"contactOId": "<string>",
"email": "<string>",
"name": "<string>",
"role": "economic_buyer",
"pinnedAt": "<string>"
}
]
},
"outputs": [
{
"oId": "<string>",
"opportunityOId": "<string>",
"outputKey": "<string>",
"version": 123,
"mode": "freeform",
"modelTier": "NOTE",
"creditsCharged": 123,
"triggerKind": "opp_created",
"batchId": "<string>",
"createdAt": "<string>",
"supersededAt": "<string>",
"content": null
}
],
"outputVersionCounts": {},
"timeline": [
{
"oId": "<string>",
"opportunityOId": "<string>",
"entryType": "<string>",
"triggerKinds": [
"opp_created"
],
"summary": "<string>",
"outputKeysChanged": [
"<string>"
],
"creditsCharged": 123,
"occurredAt": "<string>"
}
],
"timelineHasMore": true
}
}{
"_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
The oId of the CRM opportunity.
Page size for the Opportunity Watch activity timeline (default: 25, max: 100).
Required range:
1 <= x <= 100Example:
25
ISO-8601 timestamp cursor — only return timeline entries strictly before this time, to page further back.