Technical reference

API and Data Warehouse

Shared delivery conventions, resources, identifiers, joins, null semantics, and research controls for REST, Snowflake, and BigQuery implementations.

Document typeDelivery contract. REST API and Data Warehouse.

01

Delivery architecture

One logical data model is available through the REST API or Data Warehouse delivery.

Each delivery surface preserves the same company and metric identifiers, taxonomy semantics, classifier versions, lineage fields, and null behavior.

API delivery

REST API

Read-only, fact-oriented resources for applications, notebooks, and scheduled ingestion.

Warehouse delivery

Data Warehouse

Equivalent typed tables distributed through Snowflake or BigQuery for institutional research pipelines.

No raw job titles, descriptions, URLs, or posting identifiers are part of the published Job Postings contract. KPI observations expose source-check lineage rather than duplicating underlying filing text.

02

REST conventions

GET-only API conventions rooted at https://api.softwareiq.io/v1.

GET/v1/{resource}

Read a paginated collection. Available filters are resource-specific and use exact canonical identifiers unless stated otherwise.

ParameterRequiredBehavior
page_sizeNoRequested page size, subject to the service maximum.
cursorNoOpaque continuation token from meta.next_cursor; do not parse or construct it.
  • Authenticate with Authorization: Bearer <token>.
  • Dates and timestamps use ISO 8601; timestamps include an offset.
  • Decimals are JSON strings so clients do not silently lose precision.
  • Pagination order is deterministic for each endpoint. A cursor is scoped to the original resource and filter set.
  • Null means unavailable, not applicable, or not observed as defined by the field. It must not be coerced to zero.
Request and success envelope
curl --get 'https://api.softwareiq.io/v1/kpi-facts' \
  --header 'Authorization: Bearer $SOFTWAREIQ_TOKEN' \
  --data-urlencode 'company_id=siqco:example' \
  --data-urlencode 'page_size=100'

{
  "data": [{ "company_id": "siqco:example", "value": "1582000000.000000000000" }],
  "meta": { "next_cursor": "eyJwYWdlIjoyfQ", "has_more": true }
}
Error envelope
{
  "error": {
    "code": "invalid_parameter",
    "message": "period_start must be an ISO 8601 date",
    "request_id": "req_01J..."
  }
}
03

Resource catalog

Fact-oriented endpoints keep observations separate from the dictionaries and versions needed to interpret them.

ResourceAreaPurpose
/companiesSharedStable company identifiers and current coverage metadata.
/datasetsSharedDataset freshness and active classification metadata.
/metric-definitionsKPICanonical metric labels, formats, and source-key mappings.
/kpi-factsKPICurrent annual and quarterly standardized KPI observations.
/guidance-factsKPINormalized management guidance and outcome comparisons.
/job-postings/dailyJobsDaily observed totals and complete classified intersections.
/job-postings/weeklyJobsWeekly observations with collection and comparability state.
/job-taxonomy-membersJobsVersioned dimension labels and hierarchy.
/classifier-versionsJobsClassifier, taxonomy, and rule-set compatibility tuples.
/job-collection-eventsJobsATS migrations, gaps, and other continuity events.

Use company_id, not ticker or display name, as the durable company join. Use metric_id for normalized KPI work and taxonomy member IDs for job dimensions. Metadata resources are first-class inputs to a reproducible research extract.

04

Data Warehouse model

Snowflake and BigQuery distributions expose the same logical tables and analytical grain.

Warehouse tables use snake-case field names aligned with the REST resources. Identifiers, joins, field definitions, and null semantics remain consistent across delivery platforms; physical data types are mapped to the corresponding Snowflake or BigQuery type.

05

Controls for institutional research

Availability, versioning, and lineage are part of the dataset—not implementation details to discard.

Point-in-time discipline

Archive dated extracts when a strategy requires an as-known-at-the-time research panel.

Version pinning

Pin job classification versions in research artifacts. The catalog active version is convenient for current analysis, but can change as methods improve.

Continuity filters

Use availability, continuity, comparability, and collection-event fields before calculating deltas. An ATS migration creates a new baseline rather than artificial hiring.

Evidence review

Retain KPI source-check identifiers and definition metadata. Standardization improves comparability but does not erase company-specific disclosure context.