Audience + Events API (0.1.0)

Download OpenAPI specification:

The MNTN Audience API lets you build and sync the audience segments MNTN targets on Connected TV. Create a segment, add identities to it, and keep that set current.

The Events API accepts server-to-server conversion events under /v2026/events/conversions.

All endpoints require API key authentication and exchange JSON over HTTPS.

Audience

Segment and identity management for the MNTN Audience integration.

All /v2026/audience/* endpoints require API key authentication. The caller may authenticate via the Authorization header (Basic or Bearer) or the access_key query parameter. See the audienceApiKey security scheme for details.

Getting a key: generate an Audience API key from the Integrations page in the MNTN platform when you connect the Audience integration.

List audience segments

Returns a paginated list of audience segments for the authenticated connection.

When the id query parameter is present, the handler retrieves a single segment by ID (query-only alternate for GET /v2026/audience/segments/{segment_id}). The response is still a ListSegmentsResponse with a single-element segments array.

Authorizations:
audienceApiKey
query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

id
string

When provided, retrieve a single segment by ID instead of listing. This is the query-only alternate for GET /v2026/audience/segments/{segment_id}. Mutually exclusive with after, limit, and order.

after
string

Pagination cursor. After sorting by order, return results whose sort field value is strictly greater than after (for ascending order). Must have the same type as the order field.

limit
integer [ 1 .. 500 ]
Default: 50

Maximum number of segments to return (page size).

order
string
Default: "name:asc"
Enum: "id:asc" "name:asc"

Sort field and direction.

Responses

Request samples

curl "https://integrations.ex.mountain.com/v2026/audience/segments?limit=50" \
  -H "Authorization: Bearer $MNTN_API_KEY"

Response samples

Content type
application/json
{
  • "slice": {
    },
  • "segments": [
    ]
}

Create an audience segment

Creates a new audience segment for the authenticated connection. If segment.id is provided, the segment is created under that key; otherwise a new randomly-generated ID is assigned.

Authorizations:
audienceApiKey
query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
Example
{
  • "segment": {
    }
}

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Get an audience segment

Retrieve the representational state of a single audience segment.

The segment ID may be passed as a path parameter or as the id query parameter on GET /v2026/audience/segments. When the path parameter is the literal ., the handler reads id from the query string instead.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

Responses

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Upsert an audience segment

Creates or replaces an audience segment by ID.

The segment ID may be passed as a path parameter or as the id query parameter (e.g. PUT /v2026/audience/segments?id={segment_id}). When the path parameter is the literal ., the handler reads id from the query string instead. Path and query must not both be provided.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

id
string

Segment ID via query parameter (query-only alternate form). Mutually exclusive with the segment_id path parameter; provide one or the other, not both. When using this form, set the path segment to the literal ..

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "segment": {
    }
}

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Update an audience segment

Partially updates an existing audience segment by ID.

The segment ID may be passed as a path parameter or as the id query parameter (e.g. PATCH /v2026/audience/segments?id={segment_id}). When the path parameter is the literal ., the handler reads id from the query string instead. Path and query must not both be provided.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

id
string

Segment ID via query parameter (query-only alternate form). Mutually exclusive with the segment_id path parameter; provide one or the other, not both. When using this form, set the path segment to the literal ..

Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "segment": {
    }
}

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Delete an audience segment

Deletes an audience segment by ID.

The segment ID may be passed as a path parameter or as the id query parameter (e.g. DELETE /v2026/audience/segments?id={segment_id}). When the path parameter is the literal ., the handler reads id from the query string instead. Path and query must not both be provided.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

id
string

Segment ID via query parameter (query-only alternate form). Mutually exclusive with the segment_id path parameter; provide one or the other, not both. When using this form, set the path segment to the literal ..

Responses

Response samples

Content type
application/json
{
  • "segment": null
}

Add identities to a segment

Creates or updates one or more identities in the specified audience segment. Identities are processed asynchronously.

Accepts either a single identity object or a batch identities array.

The segment ID may be passed as a path parameter or as the segment_id query parameter (e.g. POST /v2026/audience/segments/./identities?segment_id={id}). When the path parameter is the literal ., the handler reads segment_id from the query string instead. Path and query must not both be provided.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

ok
integer
Value: 200

When set to 200, the endpoint responds with HTTP 200 instead of the default 202. Used for compatibility with callers that are hard-coded to expect status 200.

segment_id
string

Segment ID via query parameter (query-only alternate form). Mutually exclusive with the segment_id path parameter; provide one or the other, not both. When using this form, set the path segment to the literal ..

Request Body schema: application/json
required
object (IdentityInput)

A single identity to add to an audience segment. Used in both the single-identity (identity) and batch (identities) request forms.

Array of objects (IdentityInput) non-empty

Batch of identities. No limit on item count; total request body size is limited (2 MiB maximum, 1 MiB recommended).

Responses

Request samples

Content type
application/json
Example
{
  • "identity": {
    }
}

Response samples

Content type
application/json
{ }

Upsert a single identity in a segment

Creates or replaces a single identity in the specified audience segment. The identity is processed asynchronously.

The segment ID and identity ID may each be passed as path parameters or as query parameters (e.g. PUT /v2026/audience/segments/./identities?id={identity_id}&segment_id={segment_id}). When a path parameter is the literal ., the handler reads the corresponding query parameter instead. Path and query must not both be provided for the same parameter.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

identity_id
required
string

Unique identity identifier (single scalar). Use the literal . when providing the identity ID via the id query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

ok
integer
Value: 200

When set to 200, the endpoint responds with HTTP 200 instead of the default 202. Used for compatibility with callers that are hard-coded to expect status 200.

segment_id
string

Segment ID via query parameter (query-only alternate form). Mutually exclusive with the segment_id path parameter.

id
string

Identity ID via query parameter (query-only alternate form). Mutually exclusive with the identity_id path parameter.

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
Example
{
  • "identity": {
    }
}

Response samples

Content type
application/json
{ }

Remove identities from a segment

Removes one or more identities from the specified audience segment. The operation is asynchronous and always succeeds regardless of whether the identities currently exist.

The identity_id path parameter accepts a single ID or a comma-separated list of IDs (URL-encode the comma as %2C), e.g. DELETE /v2026/audience/segments/{segment_id}/identities/user-001%2Cuser-002.

As an alternate form, pass the literal . in the identity_id path position and provide comma-separated IDs via ?id=a,b,c (e.g. DELETE /v2026/audience/segments/{segment_id}/identities/.?id=user-001,user-002).

The segment ID may likewise be passed as a query parameter by using . in the segment_id path position (e.g. DELETE /v2026/audience/segments/./identities/.?id={ids}&segment_id={segment_id}). When a path parameter is the literal ., the handler reads the corresponding query parameter instead. Path and query must not both be provided for the same parameter.

Authorizations:
audienceApiKey
path Parameters
segment_id
required
string^(\.|[a-zA-Z0-9][a-zA-Z0-9\-_]+)$
Example: high-value-customers

Unique segment identifier. Use the literal . when providing the segment ID via query parameter instead.

identity_id
required
Array of strings

One or more identity IDs. Accepts a single ID or a comma-separated list (URL-encode the comma as %2C), e.g. user-001%2Cuser-002. Use the literal . to provide the IDs via the id query parameter instead.

query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

ok
integer
Value: 200

When set to 200, the endpoint responds with HTTP 200 instead of the default 202. Used for compatibility with callers that are hard-coded to expect status 200.

segment_id
string

Segment ID via query parameter (query-only alternate form). Mutually exclusive with the segment_id path parameter.

id
string

Comma-separated identity IDs via query parameter (query-only alternate form). Mutually exclusive with the identity_id path parameter.

Responses

Response samples

Content type
application/json
{ }

Events

Server-to-server event ingestion for the MNTN Events API.

All /v2026/events/* endpoints require API key authentication via the audienceApiKey security scheme (Bearer token or access_key query param).

Ingest conversion events

Accepts conversion / in-app events (e.g. purchases, sign-ups, installs) server-to-server. Accepts either a single conversion object or a batch conversions array.

The body is forwarded as-is to Pub/Sub; structural field validation happens downstream.

Authorizations:
audienceApiKey
query Parameters
access_key
string

API key for authentication. This is an alternative to the Authorization header. Not encouraged due to the increased likelihood of the key being logged or cached along with the URL.

Request Body schema: application/json
required
object (ConversionEvent)

A single conversion / in-app event.

Array of objects (ConversionEvent) non-empty

Batch of conversion events.

Responses

Request samples

Content type
application/json
{
  • "conversion": {
    },
  • "conversions": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "accepted"
}