Fetch a company’s news & activity feed with a cursor-based pagination.
Use it to drive “What’s new at this account?” widgets, sales research, or alerting.
Base URL: https://api.salescaddy.ai/api
Endpoint
GET /companies/{companyDomain}/feed
Path parameters
Name | Type | Required | Description |
---|---|---|---|
companyDomain | string | Yes | e.g., hilton.com |
Query parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
paginationId | string | No | — | Opaque cursor from the previous response to fetch the next batch |
The feed uses a cursor (
paginationId
) instead of page/size. Store this value and pass it to retrieve the next items.
Example — First page
curl -sS "https://api.salescaddy.ai/api/companies/hilton.com/feed" \
-H "Authorization: Bearer $TOKEN"
const url = "https://api.salescaddy.ai/api/companies/hilton.com/feed";
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.TOKEN}` } });
const data = await res.json();
console.log(data);
import os, requests
r = requests.get("https://api.salescaddy.ai/api/companies/hilton.com/feed",
headers={"Authorization": f"Bearer {os.environ['TOKEN']}"})
data = r.json()
print(data)
using System.Net.Http.Headers;
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", TOKEN);
var res = await http.GetAsync("https://api.salescaddy.ai/api/companies/hilton.com/feed");
Console.WriteLine(await res.Content.ReadAsStringAsync());
Sample response (trimmed):
{
"paginationId": "eyJvZmZzZXQiOjEwMH0=",
"items": [
{
"id": "evt_001",
"title": "Hilton partners with XYZ",
"publishedAt": "2025-07-12T10:00:00Z",
"category": "PARTNERSHIP",
"url": "https://news.example/hilton-xyz",
"summary": "Strategic partnership announced to expand digital guest experience."
},
{
"id": "evt_002",
"title": "New data center expansion",
"publishedAt": "2025-07-10T09:30:00Z",
"category": "INFRASTRUCTURE",
"url": "https://news.example/hilton-dc",
"summary": "Company expands cloud footprint to improve latency and resilience."
}
]
}
Example — Next page (use paginationId
)
paginationId
)curl -sS "https://api.salescaddy.ai/api/companies/hilton.com/feed?paginationId=eyJvZmZzZXQiOjEwMH0%3D" \
-H "Authorization: Bearer $TOKEN"
const cursor = "eyJvZmZzZXQiOjEwMH0="; // from previous response
const res = await fetch(`https://api.salescaddy.ai/api/companies/hilton.com/feed?paginationId=${encodeURIComponent(cursor)}`, {
headers: { Authorization: `Bearer ${process.env.TOKEN}` }
});
console.log(await res.json());
cursor = "eyJvZmZzZXQiOjEwMH0=" # from previous response
r = requests.get("https://api.salescaddy.ai/api/companies/hilton.com/feed",
params={"paginationId": cursor},
headers={"Authorization": f"Bearer {os.environ['TOKEN']}"})
print(r.json())
var cursor = "eyJvZmZzZXQiOjEwMH0="; // from previous response
var url = $"https://api.salescaddy.ai/api/companies/hilton.com/feed?paginationId={System.Net.WebUtility.UrlEncode(cursor)}";
var res2 = await http.GetAsync(url);
Console.WriteLine(await res2.Content.ReadAsStringAsync());
Use cases & tips
- Account research — surface recent partnerships, product launches, funding, hiring spikes, etc.
- Sales alerts — poll periodically; when new
id
appears, notify account owner. - Cursor handling — always store the latest
paginationId
you used to fetch; pass it to continue where you left off. - De‑duplication — persist seen
id
s to avoid duplicate notifications. - Backfill — if you want older items, continue following cursors until the API returns no further
paginationId
.
Errors
Code | Meaning | How to fix |
---|---|---|
400 | Bad request | Validate companyDomain ; ensure paginationId is a cursor returned by API. |
401 | Unauthorized | Provide/refresh Bearer token. |
403 | Forbidden | Check client permissions. |
404 | Not found | Unknown companyDomain or feed unavailable. |
429 | Rate limit exceeded | Retry with exponential backoff; respect Retry-After . |
500 | Internal server error | Retry later; contact support if persistent. |