Get a pitch
One write-up by id. If the author charges for it and the key owner cannot read it, the response is still 200 with is_locked: true and the body withheld. Yellowbrick Premium does not unlock an author’s pitch. When unlocked, archive reports whether a snapshot is ready, which write-up formats can be downloaded, and whether an attachment artifact exists.
curl --request GET \
--url https://www.joinyellowbrick.com/api/v1/pitches/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.joinyellowbrick.com/api/v1/pitches/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.joinyellowbrick.com/api/v1/pitches/{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://www.joinyellowbrick.com/api/v1/pitches/{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>"
],
]);
$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://www.joinyellowbrick.com/api/v1/pitches/{id}"
req, _ := http.NewRequest("GET", url, nil)
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://www.joinyellowbrick.com/api/v1/pitches/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.joinyellowbrick.com/api/v1/pitches/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"pitch_id": "<string>",
"pitch_date": "<string>",
"added_on": "<string>",
"is_premium_pitch": true,
"is_locked": true,
"pitch_title": "<string>",
"one_liner_text": "<string>",
"pitch_summary": "<string>",
"pitch_full_text": "<string>",
"source_url": "<string>",
"archive": {
"available": true,
"status": "<string>",
"formats": [
"pdf"
],
"has_attachment": true,
"snapshot": "<string>",
"request": {
"requested": true,
"requested_by_username": "<string>",
"requested_at": "<string>"
}
},
"extracted_data": {},
"investor_returns": {
"returns_1m": "<string>",
"returns_3m": "<string>",
"returns_6m": "<string>",
"returns_1y": "<string>",
"returns_2y": "<string>",
"returns_latest": "<string>"
},
"author": {
"author_user_id": "<string>",
"author_username": "<string>",
"author_display_name": "<string>",
"author_tier": "<string>",
"author_profile_image_uri": "<string>"
},
"company": {
"company_id": 123,
"ticker_symbol": "<string>",
"company_name": "<string>",
"company_logo_url": "<string>",
"country_name": "<string>",
"iso_country_code": "<string>",
"business_description": "<string>",
"currency_code": "<string>"
},
"industry_description": "<string>",
"fundamentals": {
"market_cap": "<string>",
"pitch_price": "<string>",
"ev_ebitda": "<string>",
"pe": "<string>",
"ev_sales": "<string>",
"sector": "<string>"
},
"analytics": {
"sentiment": "<string>",
"position_decision_type": "<string>",
"return_1w": "<string>",
"return_1m": "<string>",
"return_3m": "<string>",
"return_6m": "<string>",
"return_1y": "<string>",
"return_latest": "<string>"
},
"tags": [
"<string>"
],
"thesis": {
"thesis_id": "<string>",
"previous_pitches": [
{
"pitch_id": "<string>",
"pitch_title": "<string>",
"pitch_date": "<string>",
"sentiment": "<string>",
"position_decision_type": "<string>",
"is_premium_pitch": true
}
],
"next_pitches": [
{
"pitch_id": "<string>",
"pitch_title": "<string>",
"pitch_date": "<string>",
"sentiment": "<string>",
"position_decision_type": "<string>",
"is_premium_pitch": true
}
]
}
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}Authorizations
Key from Profile. Send Authorization: Bearer yb_....
Path Parameters
Pitch id from the list (pitch_id).
1Query Parameters
Optional. Vercel Protection Bypass for Automation — use when calling the Staging server.
Response
Pitch detail
True when the author charges for this write-up.
True when the write-up is paywalled and the key owner cannot read it. Title, summary, and other write-up fields are withheld.
One-line thesis, if extracted.
Full write-up. Null when is_locked is true.
Original post URL. May be withheld when locked.
Archive availability. Null when the pitch is locked.
Show child attributes
Show child attributes
Structured fields extracted from the write-up.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Tag slugs on this pitch.
Show child attributes
Show child attributes
curl --request GET \
--url https://www.joinyellowbrick.com/api/v1/pitches/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.joinyellowbrick.com/api/v1/pitches/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.joinyellowbrick.com/api/v1/pitches/{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://www.joinyellowbrick.com/api/v1/pitches/{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>"
],
]);
$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://www.joinyellowbrick.com/api/v1/pitches/{id}"
req, _ := http.NewRequest("GET", url, nil)
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://www.joinyellowbrick.com/api/v1/pitches/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.joinyellowbrick.com/api/v1/pitches/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"pitch_id": "<string>",
"pitch_date": "<string>",
"added_on": "<string>",
"is_premium_pitch": true,
"is_locked": true,
"pitch_title": "<string>",
"one_liner_text": "<string>",
"pitch_summary": "<string>",
"pitch_full_text": "<string>",
"source_url": "<string>",
"archive": {
"available": true,
"status": "<string>",
"formats": [
"pdf"
],
"has_attachment": true,
"snapshot": "<string>",
"request": {
"requested": true,
"requested_by_username": "<string>",
"requested_at": "<string>"
}
},
"extracted_data": {},
"investor_returns": {
"returns_1m": "<string>",
"returns_3m": "<string>",
"returns_6m": "<string>",
"returns_1y": "<string>",
"returns_2y": "<string>",
"returns_latest": "<string>"
},
"author": {
"author_user_id": "<string>",
"author_username": "<string>",
"author_display_name": "<string>",
"author_tier": "<string>",
"author_profile_image_uri": "<string>"
},
"company": {
"company_id": 123,
"ticker_symbol": "<string>",
"company_name": "<string>",
"company_logo_url": "<string>",
"country_name": "<string>",
"iso_country_code": "<string>",
"business_description": "<string>",
"currency_code": "<string>"
},
"industry_description": "<string>",
"fundamentals": {
"market_cap": "<string>",
"pitch_price": "<string>",
"ev_ebitda": "<string>",
"pe": "<string>",
"ev_sales": "<string>",
"sector": "<string>"
},
"analytics": {
"sentiment": "<string>",
"position_decision_type": "<string>",
"return_1w": "<string>",
"return_1m": "<string>",
"return_3m": "<string>",
"return_6m": "<string>",
"return_1y": "<string>",
"return_latest": "<string>"
},
"tags": [
"<string>"
],
"thesis": {
"thesis_id": "<string>",
"previous_pitches": [
{
"pitch_id": "<string>",
"pitch_title": "<string>",
"pitch_date": "<string>",
"sentiment": "<string>",
"position_decision_type": "<string>",
"is_premium_pitch": true
}
],
"next_pitches": [
{
"pitch_id": "<string>",
"pitch_title": "<string>",
"pitch_date": "<string>",
"sentiment": "<string>",
"position_decision_type": "<string>",
"is_premium_pitch": true
}
]
}
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 0,
"detail": "<string>"
}