Pulse Intelligence

Quickstart

Make your first request to the Pulse public API

This guide walks through your first request to the Pulse public API: screening companies by market cap.

Prerequisites

You'll need an organization API key. If you don't have one, ask an admin on your Pulse organization to create one from Settings → API Keys — see Authentication for the full flow. Every request below assumes you have a valid key in the pulse_... placeholder.

Search companies

POST /v1/companies/search/ screens companies against a set of filters and returns matching rows. A search request takes filters, logic, and columns — see Filters for the full shape of each.

For a first request, let's screen for companies with a market cap of at least $100M, using a single gte (greater-than-or-equal) filter on market_cap_in_usd:

{
  "filters": [
    { "field": "market_cap_in_usd", "operator": "gte", "value": 100000000 }
  ]
}

Note the trailing slash on /v1/companies/search/ — it's required on every endpoint (see Endpoints); keep it when you adapt these examples.

curl

curl https://api.pulseintelligence.com/v1/companies/search/ \
  -H "Authorization: Bearer pulse_a1b2c3d4_<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      { "field": "market_cap_in_usd", "operator": "gte", "value": 100000000 }
    ]
  }'

Python

import requests

response = requests.post(
    "https://api.pulseintelligence.com/v1/companies/search/",
    headers={"Authorization": "Bearer pulse_a1b2c3d4_<secret>"},
    json={
        "filters": [
            {"field": "market_cap_in_usd", "operator": "gte", "value": 100000000},
        ],
    },
)
response.raise_for_status()
data = response.json()

Read the response

The response is a flat object with the matching rows and the page window that produced them:

{
  "results": [
    {
      "id": 1,
      "name": "Example Mining Corp",
      "symbol": "EXM",
      "market_cap_in_usd": 245000000
    }
  ],
  "count": 1,
  "truncated": false,
  "limit": 25,
  "offset": 0
}
  • results — the matching rows, shaped by whatever columns you requested (or the default set if you didn't request any). name, symbol, and market_cap_in_usd above are typical company fields.
  • count — how many rows matched in total, across all pages.
  • truncatedtrue if more rows matched than this page returns. Advance offset by limit and repeat the request to fetch the rest.
  • limit / offset — the page window actually used, echoing what you sent (limit defaults to 25, offset to 0).

To page through a larger result set, send limit, offset, and an explicit sort alongside your filters and keep advancing offset while truncated is true — see Pagination and enumeration for the full semantics, including why sort matters when you paginate.

Go deeper

  • Filters covers the full filter vocabulary, available operators, combining filters with logic and expression, and discovering filterable fields via GET /v1/filters/{resource}/.
  • Pagination and enumeration covers limit/offset/sort and how to walk the full company or asset universe.
  • Rate limits and errors covers quota headers, 429 responses, and the error envelope shape.
  • The API Reference has the full request/response schema for this endpoint, plus every other endpoint on the API.

On this page