Company - Feed

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

NameTypeRequiredDescription
companyDomainstringYese.g., hilton.com

Query parameters

NameTypeRequiredDefaultDescription
paginationIdstringNoOpaque 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)

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 ids to avoid duplicate notifications.
  • Backfill — if you want older items, continue following cursors until the API returns no further paginationId.

Errors

CodeMeaningHow to fix
400Bad requestValidate companyDomain; ensure paginationId is a cursor returned by API.
401UnauthorizedProvide/refresh Bearer token.
403ForbiddenCheck client permissions.
404Not foundUnknown companyDomain or feed unavailable.
429Rate limit exceededRetry with exponential backoff; respect Retry-After.
500Internal server errorRetry later; contact support if persistent.