curl --request GET \
--url https://dripstack.com/api/v1/entities/searchimport requests
url = "https://dripstack.com/api/v1/entities/search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://dripstack.com/api/v1/entities/search', 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://dripstack.com/api/v1/entities/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://dripstack.com/api/v1/entities/search"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dripstack.com/api/v1/entities/search")
.asString();require 'uri'
require 'net/http'
url = URI("https://dripstack.com/api/v1/entities/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"query": {
"ticker": "AAPL",
"company": null,
"person": null,
"organization": null,
"subject": null,
"author": null,
"stockPicksOnly": false,
"sort": "latest",
"publicationSlug": null,
"publishedAfter": null,
"publishedBefore": null
},
"matchedEntity": {
"kind": "company",
"name": "Apple",
"description": "American multinational technology company",
"companies": [
{
"name": "Apple",
"ticker": "AAPL"
}
],
"tickers": [
"AAPL"
],
"matchedVia": [
"ticker",
"company"
]
},
"count": 1,
"nextCursor": null,
"items": [
{
"publicationSlug": "stratechery",
"slug": "aapl-earnings",
"title": "Apple Earnings",
"author": "Ben Thompson",
"publishedAt": "2026-08-15T00:00:00.000Z",
"priceCents": 500,
"url": "https://stratechery.com/p/aapl-earnings",
"isPodcast": false
}
]
}{
"error": "<string>",
"issues": {}
}{
"error": "<string>"
}Find articles that mention an entity or are linked to a stock pick.
Free article discovery sorted by publication date (latest first by default) — use this to answer “what did analysts say about X this week?” rather than /api/v1/search’s topic-relevance ranking. Set stockPicksOnly=true to restrict results to source posts linked to stock-pick rows. With stockPicksOnly=true and ticker, ticker matching is exact against StockPickCall.ticker and bypasses ticker metadata expansion. author matches the canonical source article/pick author. sort=earliest returns the oldest matching article first. Limited to curated, non-disabled publications, same catalog as topic search.
curl --request GET \
--url https://dripstack.com/api/v1/entities/searchimport requests
url = "https://dripstack.com/api/v1/entities/search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://dripstack.com/api/v1/entities/search', 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://dripstack.com/api/v1/entities/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://dripstack.com/api/v1/entities/search"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dripstack.com/api/v1/entities/search")
.asString();require 'uri'
require 'net/http'
url = URI("https://dripstack.com/api/v1/entities/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"query": {
"ticker": "AAPL",
"company": null,
"person": null,
"organization": null,
"subject": null,
"author": null,
"stockPicksOnly": false,
"sort": "latest",
"publicationSlug": null,
"publishedAfter": null,
"publishedBefore": null
},
"matchedEntity": {
"kind": "company",
"name": "Apple",
"description": "American multinational technology company",
"companies": [
{
"name": "Apple",
"ticker": "AAPL"
}
],
"tickers": [
"AAPL"
],
"matchedVia": [
"ticker",
"company"
]
},
"count": 1,
"nextCursor": null,
"items": [
{
"publicationSlug": "stratechery",
"slug": "aapl-earnings",
"title": "Apple Earnings",
"author": "Ben Thompson",
"publishedAt": "2026-08-15T00:00:00.000Z",
"priceCents": 500,
"url": "https://stratechery.com/p/aapl-earnings",
"isPodcast": false
}
]
}{
"error": "<string>",
"issues": {}
}{
"error": "<string>"
}Query Parameters
Stock ticker, 1-8 characters (letters, numbers, . or -). Normally resolves a company card and expands to company-name tags. With stockPicksOnly=true, matches StockPickCall.ticker exactly without metadata ticker expansion. At least one of ticker, company, person, organization, subject, or author is required.
1 - 8^[A-Za-z0-9.-]+$Company name, matched as a case-insensitive substring and expanded to related tickers when known.
2Person name. Matches tagged persons, related companies/tickers, and titles.
2Organization name. Matches companies and themes; expands to related companies/tickers when possible.
2Theme or subject discussed in posts, matched against metadata themes.
2Canonical source article/pick author, matched as a case-insensitive substring. Can be used alone for stock-pick-only discovery.
2When true, return only free article results linked to at least one stock-pick row.
Publication ordering. latest is most recent first; earliest is oldest first.
latest, earliest Restrict results to one publication.
Inclusive UTC calendar day lower bound, YYYY-MM-DD.
Inclusive UTC calendar day upper bound, YYYY-MM-DD.
Maximum number of items returned (1-30).
1 <= x <= 30Pass the previous response's nextCursor to fetch the next page.
Response
Matched articles, sorted by publication date.
Show child attributes
Show child attributes
The person, company, or organization matched from the query, including related companies, tickers, and how posts were searched. Null when no match was found.
Show child attributes
Show child attributes
Number of items in this page.
x >= 0Pass to the cursor param to fetch the next page; null when no more results.
Show child attributes
Show child attributes

