NULL, or
the endpoint returns introspection data instead of the data its name
implies. This page lists every known case so you can plan around them.
Each item below also surfaces in the API Reference as a
warning blockquote at the top of the affected operation and as an
x-data-status extension on the operation. The
Filters & Sorting reference
flags affected filters with a ⚠ no data status column and an inline
<Warning> callout.Endpoints
Ecosystems and landscapes — unloaded
The ecosystems, landscapes, and landscape_entities tables are
user-owned. They are not populated by the BigQuery loader, so a
freshly deployed environment has no rows until a caller creates them
through the API.
Affected operations:
GET /api/platform/ecosystemsGET /api/platform/ecosystems/{id}POST /api/platform/ecosystemsPATCH /api/platform/ecosystems/{id}DELETE /api/platform/ecosystems/{id}GET /api/platform/ecosystems/{id}/landscapesPOST /api/platform/ecosystems/{id}/landscapesPATCH /api/reference/landscapes/{id}DELETE /api/reference/landscapes/{id}PUT /api/reference/landscapes/{id}/entities
GET /api/system/metrics — stub
Returns the server’s observability configuration (OpenTelemetry endpoint,
service name, instrumentation list, exported metric names). It is not
a metric data source. For actual measurements use:
- API usage / billing:
GET /api/platform/usage/* - Infrastructure metrics: Prometheus / Grafana (oncall dashboards)
- Tracing: Sentry
GET /api/data/jobs — sparse fields unexposed — data-incomplete
The jobs dataset covers active openings only. Five columns are loaded but
not exposed or filterable because they have under 1% coverage (Predict
Leads, which supplies most job volume, does not provide them): salary_min,
salary_max, currency, department, and contract_type. The endpoint
returns the well-populated fields (title, source, location, date_posted) plus
the joined hiring company.
Filters
Investor fund-field filters — data-incomplete
Five filters on the investor scope are registered and accept input, but
the underlying columns are loaded as CAST(NULL AS …) placeholders. Every
query that constrains on them returns zero rows.
| Filter key | Backing column |
|---|---|
total_investments_count | entities.total_investments_count |
fund_size | entities.fund_size_usd |
vintage_year | entities.vintage_year |
is_raising | entities.is_raising |
fund_status | entities.fund_status |
Partial / known gaps
In addition to the unimplemented filters above, ~56 company-scope filters from the legacy V2 API are tracked as “Truly Missing” — for examplerevenue_min/_max, last_funding_valuation_min/_max,
has_website_url, website_inactive, has_address, tech_stack,
founders_age, has_app_downloads_chart. They are not registered today
and any reference to them in older code or queries will return a
400 unknown_filter error.
Founder employer-relationship filters (companies_positions,
companies_income_streams, companies_client_focus,
companies_technologies) are similarly not wired up.
The Exits / IPOs surface is partial — only is_exited is queryable.
Exit details (exit_type, exit_amount, exit_year, exit_valuation)
are not exposed and there is no dedicated /api/exits endpoint.
How to detect a gap programmatically
If you’re generating an SDK from the OpenAPI spec, look for thex-data-status extension on operations and the data_status metadata
returned by GET /api/reference/filters?scope={scope} for filters. Both fields
carry a kind (stub / data-incomplete / unloaded / partial) and
a human-readable reason.