Skip to main content

Endpoint reference

This page is the normative reference for the Explore / Crosstab API (OAS3). It tracks the OpenAPI document, which is the machine-readable source of truth — the examples on this site are validated against it at build time.

Working from the spec

Point your generator at /openapi/sample-api.yaml (or GET /docs) to produce a typed client rather than hand-writing request models. The operationId values below are the names your generator will use.

Server​

Base URLhttps://engines.api.telmar.com/omg/prd/v1
Media typeapplication/json
AuthTelmar-Engine-Authorizer: <api-key>

All endpoints below are relative to the base URL.

Operations​

| Method | Path | Description | Auth | Billed | | --- | --- | --- | --- | | GET | /docs | Returns the OpenAPI specification for this service in JSON format | Not required | No | | POST | /crosstab | Executes a crosstab query against the dataset and returns weighted audience results | Required | Yes, on success | | OPTIONS | /crosstab | CORS preflight check for the /crosstab endpoint | Not required | No |

operationIdMethod and path
docsGET /docs
crosstabPOST /crosstab
crosstabOptionsOPTIONS /crosstab

GET /docs​

Returns the full OpenAPI specification for this service as a JSON object. Useful for programmatic discovery of the API schema. No authentication is required.

Parameters​

None.

Response — 200 OK​

FieldTypeDescription
(body)objectThe OpenAPI specification document in application/json format

POST /crosstab​

Executes a crosstab query against a specified survey dataset. Returns weighted audience counts, unweighted respondent counts, and stability indicators for each requested target code.

Request​

Content-Typeapplication/json
BodyCrosstabRequest (required)

Request schema — CrosstabRequest​

FieldTypeRequiredDescription
SurveyCodestringYesIdentifies the target survey dataset (e.g. "M20F")
AuthorizationGroupstringNoAuthorization group filter. Use "_ALL_" to include all groups
PopulationBaseCodestringYesPopulation base for the query (e.g. "AR18_24")
TargetCodesstring[]YesTarget segment codes. Min 1 item, max 2 items
Request example
{
"SurveyCode": "M20F",
"AuthorizationGroup": "_ALL_",
"PopulationBaseCode": "AR18_24",
"TargetCodes": ["OMEN", "OWOMEN"]
}

This example queries the M20F survey using AR18_24 as the population base, and returns results for two target segments: OMEN (Men) and OWOMEN (Women).

Response schema — CrosstabResponse​

FieldTypeDescription
ResultCodeintegerNumeric status code. 0 indicates success
ResultDescriptionstringHuman-readable description of the result status
ResultsCrosstabResult[]One result object per TargetCode. Min 1, max 2
AudienceReportUnitsintegerAudience unit multiplier applied to weighted counts (e.g. 1000)

Result object — CrosstabResult​

FieldTypeDescription
WgtAudnumber (float)Weighted projected audience size. Multiply by AudienceReportUnits for the absolute figure
RespsintegerUn-weighted count of respondents matching this target code
Stblinteger (0 | 1)Stability factor. 0 = Stable, 1 = Unstable. Unstable results indicate low respondent counts and should be used with caution
Response example — 200 OK
{
"ResultCode": 0,
"ResultDescription": "",
"Results": [
{ "Resps": 1000, "WgtAud": 10000, "Stbl": 0 },
{ "Resps": 123, "WgtAud": 4444, "Stbl": 1 }
],
"AudienceReportUnits": 1000
}

Response headers​

HeaderType
Access-Control-Allow-Originstring

OPTIONS /crosstab​

CORS preflight endpoint for the /crosstab path. Browsers issue this automatically before cross-origin POST requests. No parameters required.

Response — 200 OK​

HeaderType
Access-Control-Allow-Originstring
Access-Control-Allow-Methodsstring
Access-Control-Allow-Headersstring

Error codes​

The API uses standard HTTP status codes. The ResultCode field in the response body provides additional detail.

HTTP codeResultCodeMeaning
2000Success. Results returned normally
200> 0Partial or conditional result. Check ResultDescription
400—Bad request. Malformed JSON or missing required fields
401—Unauthorized. Verify API key or Cognito credentials
403—Forbidden. User does not have access to the requested dataset
500—Internal server error. Contact TelmarHelixa support

Limits​

LimitValue
Target codes per request1–2
Result shape1 column × up to 2 rows (or 2 columns × 1 row)
Maximum rows per axis5,000 (may be adapted in future versions)
Surveys per request1
Population bases per request1

Commercial terms — volume commitments, contracted throughput and pricing — are part of your agreement and are not published here. Contact Sales.