Infinite Audience

ai.infiniteaudience•NO FAIT•Registered: Sep 24, 2026
Community

Description

Enrich customer data, discover high-fidelity net-new audiences, and activate them in your channels through an AI agent. Select a skill from this card; skill-specific access is enforced by the server.

Skills

Discovery Count

discovery-count

Count matching records in the audience graph given geo, demographic, behavioral, or custom filter criteria. Accepts saved segment IDs, audience IDs, multi-segment composition, filter_groups, or flat filters. Returns total record count without purchasing records; backend compute usage is recorded as non-commercial telemetry. Requires 'discovery' scope.

audiencesdiscoverycounts

Discovery Lookup

discovery-lookup

Return masked sample rows and field metadata for a defined audience without purchasing records. Accepts saved segment IDs, audience IDs, multi-segment composition, filter_groups, or flat filters. Useful for validating filter criteria before committing to a delivery; backend compute usage is non-commercial telemetry. Requires 'discovery' scope.

audiencesdiscoverysamples

Discovery Crosstab

discovery-crosstab

Cross-tabulate a population by two categorical dimensions (e.g. state x gender) and return a pivot table of counts. Accepts saved segment IDs, audience IDs, multi-segment composition, filter_groups, or flat filters. Backend compute usage is non-commercial telemetry. Requires 'discovery' scope.

audiencesdiscoveryanalysis

Discovery Overlap

discovery-overlap

Calculate how many records appear in both of two populations (audiences, segments, or ad-hoc filter sets) and return overlap count, overlap_pct, and demographic deltas. Backend compute usage is non-commercial telemetry. Requires 'discovery' scope.

audiencesdiscoveryoverlap

Audience Management

audience-management

Create and manage audiences: composition wrappers that group one or more segments for delivery. Audiences have no subtype — use segment-management to create typed cohorts. Duplicate an existing audience via the duplicate_audience tool — the duplicate carries the source composition with lineage tracking (parent and root ancestor recorded, segment versions pinned) and starts with a null record count until recounted. Refresh a stale or expired audience via the refresh_audience tool — since an audience is a composition of one or more member segments (possibly mixed subtypes) with no single 'primary' segment, refresh_audience requires a segment_id naming which member to refresh; it refreshes that segment and bumps the audience's own version/expiry, but never any other audience referencing the same segment. Also supports bulk operations — create, patch, or archive multiple audiences in a single request. Requires 'purchase' scope.

audiencescompositionmanagement

Segment Management

segment-management

Create and manage segments of all types: filter (criteria-based), matched (uploaded CSV/JSON/JSONL/Avro lists, optionally gzip-compressed and split into same-format shards), similarity (lookalike), and propensity (model-scored). Segments are reusable cohort definitions that can be composed into audiences for delivery. Duplicate any segment via the duplicate_segment tool — the duplicate preserves the subtype and all subtype-specific data (referenced, never recomputed) with lineage tracking; filter duplicates start with a null count while other subtypes carry the source counts, and duplicating a matched segment whose match data is unavailable is rejected with a 409 conflict. Refresh a stale segment against the current identity graph via the refresh_segment tool — referencing audiences are never touched; archived segments and matched duplicates that share another segment's data are rejected with a 409. Bulk operations: create up to 25 segments, or rename/archive/restore up to 50 at once via the bulk_patch_segments and bulk_archive_segments tools (status-only and reversible). Requires 'purchase' scope. For get_segment_demographics, get_segment_audiences, and count_segment (which require only 'discovery' scope but can meter compute or update cached state), submit under the segment-lookup skill instead.

segmentscohortsmanagement

Segment Lookup

segment-lookup

Segment inspection: get a demographic breakdown via get_segment_demographics (any subtype — non-filter segments resolve via the same ID-set composition audiences use), list the audiences that reference a segment (with campaign linkage) via get_segment_audiences, or recount via count_segment (runs a fresh BigQuery count for any subtype). Demographics and recount operations record non-commercial compute telemetry. Requires 'discovery' scope.

segmentsdemographicscounts

Data Catalog

catalog

Browse the enrichment field catalog (available data attributes, coverage rates, and pricing structure: base rate, field surcharges, destination surcharges). Call before building enrichment audiences to discover valid options. Requires 'discovery' scope.

catalogfieldsenrichment

Identity Resolution & Match History

identity-resolution

Synchronous or file-based identity resolution, plus full match history access. Synchronous inline resolution for up to 100 contact records (email, phone, name, address) submitted directly — returns match statistics via a MATCH_REPORT (matchCount, matchRatePct, recordCount) and emits usage per matched record when the records leave in the response. For larger datasets, use the segment-management skill (subtype=matched) to start an unbilled file-processing job; its one-time match usage is emitted only on the first successful delivery. Match history: list or retrieve past micro-batch runs (run_id, match_rate, amount_charged, created_at) and file-based match jobs (match_id, matching_status, segment_id, audience_id). amount_charged is a conservative pending-usage estimate for micro-batches and remains null for a file job until its first delivery. Supports cursor pagination for unlimited history depth. Requires 'purchase' scope; for history-only reads use the match-history skill, which requires only 'discovery' scope.

identitymatchingenrichment

Match History

match-history

Retrieve and paginate through the organization's identity resolution history. Covers both micro-batch runs (POST /v1/match) and file-based jobs (POST /v1/match/file). Returns run_id or match_id, match_count, match_rate, amount_charged, input_record_count, status, created_at, and expires_at. Micro-batch amount_charged is a conservative pending-usage estimate; file-job amount_charged remains null until the first successful delivery emits its one-time match usage. File jobs also expose segment_id, audience_id, and matching_status. Use to audit recent activity, compare estimated usage costs, or find a specific job by date range. Requires 'discovery' scope — no purchase scope needed.

matchinghistorystatus

Integration Result History

integration-result-history

List or retrieve safe, retained integration activity without exposing private workflow artifacts. Results include provenance, counts, selected fields, billing rail, promotion deadline, and durable Library links. Requires 'discovery' scope.

integrationshistoryresults

Save Integration Result

integration-result-promotion

Promote an eligible integration result into durable Segment and Audience objects using the exact settled result. Promotion is idempotent, does not re-run enrichment, and does not create a second usage charge. Requires 'purchase' scope.

integrationssegmentsaudiences

Delivery History

delivery-history

List past deliveries for a given audience or file-based match job, or org-wide across all audiences with optional status/destination/audience filters and cursor pagination. Each entry includes destination, status, record count, cost, output format, explicit output compression, stored byte size, and timestamps. Useful for auditing prior purchases or resuming a workflow. Requires 'discovery' scope.

deliveryhistorystatus

Pricing & Quoting

pricing

Get a binding price estimate for an audience download. Returns cost_estimate (total, base, one-time deferred file-match cost when applicable, field, and destination surcharges), billing_count, sufficient_balance, shortfall, and already_delivered (true when this exact delivery has been made before and re-delivery is free). LiveRamp and Narrative remain unavailable until their partner pushes can confirm data egress. Requires 'discovery' scope.

pricingquotesdelivery

Audience Delivery

data-purchase

Initiate a direct download for a saved audience (CSV/JSON/JSONL with optional gzip, or Avro with native DEFLATE). The first successful delivery of completed file-match data also emits that run's one-time match usage. Output compression is explicit and never inherited from input uploads. A different format/compression after an already-paid delivery is re-exported without another delivery or match charge. LiveRamp and Narrative remain unavailable until their partner pushes can confirm data egress. Use the pricing skill first to confirm pricing. Requires 'purchase' scope.

audiencesdeliveryactivation

Delivery Status

delivery-status

Check the status and download URLs for a specific delivery. Poll after initiating a delivery to determine when records are ready. Note: download_urls are short-lived presigned GCS URLs regenerated fresh on every GET — do not cache them. Requires 'discovery' scope.

deliverystatusdownloads

Account & Balance

account-info

Retrieve the org's source-routed billing state: active contract and rated current-period usage, effective prepaid balance after reservations/pending usage, automatic-recharge state, postpay ceiling, payment readiness, and projection staleness. A parent-billed child sees only its own attributed usage and never the agency's pooled balance or invoices. Requires 'account' scope.

accountusagebalance

Campaign Management

campaign-management

Create, update, and archive campaign workspaces, including their campaign brief and goals. Link or unlink audiences from campaigns. Pass metadata.campaign_id to supply an active campaign context for the turn. Requires 'purchase' scope. For read-only campaign list and detail requests, submit under the campaign-lookup skill instead — it only requires 'discovery' scope.

Example prompts:
"Create a new campaign called Q3 Prospecting with goals for acquiring regional retail customers"
"Link audience abc123 to campaign xyz789"
campaignsaudiencesworkspace

Campaign Lookup

campaign-lookup

Read-only campaign inspection: list campaigns or get a single campaign's brief and linked audiences. Pass metadata.campaign_id to supply an active campaign context for the turn. Requires 'discovery' scope.

Example prompts:
"List my active campaigns"
"Show recent deliveries for campaign xyz789"
campaignsaudiencesworkspace

System Capabilities

Input Modes

text/plain

Output Modes

text/plain

Streaming

✓ Supported

Category

Business / Data

Payment Capabilities

Unknown

This agent hasn't declared payment capabilities yet.

Learn how to add

Agent Card Schema

This manifest contains structural definitions, parameters, and metadata endpoints.

{
  "name": "Infinite Audience",
  "description": "Enrich customer data, discover high-fidelity net-new audiences, and activate them in your channels through an AI agent. Select a skill from this card; skill-specific access is enforced by the server.",
  "supportedInterfaces": [
    {
      "url": "https://a2a.infiniteaudience.ai/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://a2a.infiniteaudience.ai/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    }
  ],
  "provider": {
    "url": "https://infiniteaudience.ai",
    "organization": "NO FAIT (dba Infinite Audience)"
  },
  "version": "1.6.0",
  "documentationUrl": "https://docs.infiniteaudience.ai/agents/a2a/",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "infiniteAudienceOAuth": {
      "oauth2SecurityScheme": {
        "description": "Delegated user access using authorization code and PKCE.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://api.infiniteaudience.ai/v1/oauth/authorize",
            "tokenUrl": "https://api.infiniteaudience.ai/v1/oauth/token",
            "refreshUrl": "https://api.infiniteaudience.ai/v1/oauth/token",
            "scopes": {
              "discovery": "Catalog, counts, and history; may perform backend computation.",
              "purchase": "Authorize billable usage and exports: create, match, and deliver data using the existing account. Usage may consume the organization’s balance or incur charges."
            },
            "pkceRequired": true
          }
        },
        "oauth2MetadataUrl": "https://api.infiniteaudience.ai/.well-known/oauth-authorization-server"
      }
    },
    "infiniteAudienceDeviceOAuth": {
      "oauth2SecurityScheme": {
        "description": "Delegated access for chat and terminal clients using device authorization.",
        "flows": {
          "deviceCode": {
            "deviceAuthorizationUrl": "https://api.infiniteaudience.ai/v1/oauth/device_authorization",
            "tokenUrl": "https://api.infiniteaudience.ai/v1/oauth/token",
            "scopes": {
              "discovery": "Catalog, counts, and history; may perform backend computation.",
              "purchase": "Authorize billable usage and exports: create, match, and deliver data using the existing account. Usage may consume the organization’s balance or incur charges."
            }
          }
        },
        "oauth2MetadataUrl": "https://api.infiniteaudience.ai/.well-known/oauth-authorization-server"
      }
    },
    "infiniteAudienceBearer": {
      "httpAuthSecurityScheme": {
        "description": "Short-lived token from server-to-server API-key exchange.",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "infiniteAudienceOAuth": {}
      }
    },
    {
      "schemes": {
        "infiniteAudienceDeviceOAuth": {}
      }
    },
    {
      "schemes": {
        "infiniteAudienceBearer": {}
      }
    }
  ],
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "discovery-count",
      "name": "Discovery Count",
      "description": "Count matching records in the audience graph given geo, demographic, behavioral, or custom filter criteria. Accepts saved segment IDs, audience IDs, multi-segment composition, filter_groups, or flat filters. Returns total record count without purchasing records; backend compute usage is recorded as non-commercial telemetry. Requires 'discovery' scope.",
      "tags": [
        "audiences",
        "discovery",
        "counts"
      ]
    },
    {
      "id": "discovery-lookup",
      "name": "Discovery Lookup",
      "description": "Return masked sample rows and field metadata for a defined audience without purchasing records. Accepts saved segment IDs, audience IDs, multi-segment composition, filter_groups, or flat filters. Useful for validating filter criteria before committing to a delivery; backend compute usage is non-commercial telemetry. Requires 'discovery' scope.",
      "tags": [
        "audiences",
        "discovery",
        "samples"
      ]
    },
    {
      "id": "discovery-crosstab",
      "name": "Discovery Crosstab",
      "description": "Cross-tabulate a population by two categorical dimensions (e.g. state x gender) and return a pivot table of counts. Accepts saved segment IDs, audience IDs, multi-segment composition, filter_groups, or flat filters. Backend compute usage is non-commercial telemetry. Requires 'discovery' scope.",
      "tags": [
        "audiences",
        "discovery",
        "analysis"
      ]
    },
    {
      "id": "discovery-overlap",
      "name": "Discovery Overlap",
      "description": "Calculate how many records appear in both of two populations (audiences, segments, or ad-hoc filter sets) and return overlap count, overlap_pct, and demographic deltas. Backend compute usage is non-commercial telemetry. Requires 'discovery' scope.",
      "tags": [
        "audiences",
        "discovery",
        "overlap"
      ]
    },
    {
      "id": "audience-management",
      "name": "Audience Management",
      "description": "Create and manage audiences: composition wrappers that group one or more segments for delivery. Audiences have no subtype — use segment-management to create typed cohorts. Duplicate an existing audience via the duplicate_audience tool — the duplicate carries the source composition with lineage tracking (parent and root ancestor recorded, segment versions pinned) and starts with a null record count until recounted. Refresh a stale or expired audience via the refresh_audience tool — since an audience is a composition of one or more member segments (possibly mixed subtypes) with no single 'primary' segment, refresh_audience requires a segment_id naming which member to refresh; it refreshes that segment and bumps the audience's own version/expiry, but never any other audience referencing the same segment. Also supports bulk operations — create, patch, or archive multiple audiences in a single request. Requires 'purchase' scope.",
      "tags": [
        "audiences",
        "composition",
        "management"
      ]
    },
    {
      "id": "segment-management",
      "name": "Segment Management",
      "description": "Create and manage segments of all types: filter (criteria-based), matched (uploaded CSV/JSON/JSONL/Avro lists, optionally gzip-compressed and split into same-format shards), similarity (lookalike), and propensity (model-scored). Segments are reusable cohort definitions that can be composed into audiences for delivery. Duplicate any segment via the duplicate_segment tool — the duplicate preserves the subtype and all subtype-specific data (referenced, never recomputed) with lineage tracking; filter duplicates start with a null count while other subtypes carry the source counts, and duplicating a matched segment whose match data is unavailable is rejected with a 409 conflict. Refresh a stale segment against the current identity graph via the refresh_segment tool — referencing audiences are never touched; archived segments and matched duplicates that share another segment's data are rejected with a 409. Bulk operations: create up to 25 segments, or rename/archive/restore up to 50 at once via the bulk_patch_segments and bulk_archive_segments tools (status-only and reversible). Requires 'purchase' scope. For get_segment_demographics, get_segment_audiences, and count_segment (which require only 'discovery' scope but can meter compute or update cached state), submit under the segment-lookup skill instead.",
      "tags": [
        "segments",
        "cohorts",
        "management"
      ]
    },
    {
      "id": "segment-lookup",
      "name": "Segment Lookup",
      "description": "Segment inspection: get a demographic breakdown via get_segment_demographics (any subtype — non-filter segments resolve via the same ID-set composition audiences use), list the audiences that reference a segment (with campaign linkage) via get_segment_audiences, or recount via count_segment (runs a fresh BigQuery count for any subtype). Demographics and recount operations record non-commercial compute telemetry. Requires 'discovery' scope.",
      "tags": [
        "segments",
        "demographics",
        "counts"
      ]
    },
    {
      "id": "catalog",
      "name": "Data Catalog",
      "description": "Browse the enrichment field catalog (available data attributes, coverage rates, and pricing structure: base rate, field surcharges, destination surcharges). Call before building enrichment audiences to discover valid options. Requires 'discovery' scope.",
      "tags": [
        "catalog",
        "fields",
        "enrichment"
      ]
    },
    {
      "id": "identity-resolution",
      "name": "Identity Resolution & Match History",
      "description": "Synchronous or file-based identity resolution, plus full match history access. Synchronous inline resolution for up to 100 contact records (email, phone, name, address) submitted directly — returns match statistics via a MATCH_REPORT (matchCount, matchRatePct, recordCount) and emits usage per matched record when the records leave in the response. For larger datasets, use the segment-management skill (subtype=matched) to start an unbilled file-processing job; its one-time match usage is emitted only on the first successful delivery. Match history: list or retrieve past micro-batch runs (run_id, match_rate, amount_charged, created_at) and file-based match jobs (match_id, matching_status, segment_id, audience_id). amount_charged is a conservative pending-usage estimate for micro-batches and remains null for a file job until its first delivery. Supports cursor pagination for unlimited history depth. Requires 'purchase' scope; for history-only reads use the match-history skill, which requires only 'discovery' scope.",
      "tags": [
        "identity",
        "matching",
        "enrichment"
      ]
    },
    {
      "id": "match-history",
      "name": "Match History",
      "description": "Retrieve and paginate through the organization's identity resolution history. Covers both micro-batch runs (POST /v1/match) and file-based jobs (POST /v1/match/file). Returns run_id or match_id, match_count, match_rate, amount_charged, input_record_count, status, created_at, and expires_at. Micro-batch amount_charged is a conservative pending-usage estimate; file-job amount_charged remains null until the first successful delivery emits its one-time match usage. File jobs also expose segment_id, audience_id, and matching_status. Use to audit recent activity, compare estimated usage costs, or find a specific job by date range. Requires 'discovery' scope — no purchase scope needed.",
      "tags": [
        "matching",
        "history",
        "status"
      ]
    },
    {
      "id": "integration-result-history",
      "name": "Integration Result History",
      "description": "List or retrieve safe, retained integration activity without exposing private workflow artifacts. Results include provenance, counts, selected fields, billing rail, promotion deadline, and durable Library links. Requires 'discovery' scope.",
      "tags": [
        "integrations",
        "history",
        "results"
      ]
    },
    {
      "id": "integration-result-promotion",
      "name": "Save Integration Result",
      "description": "Promote an eligible integration result into durable Segment and Audience objects using the exact settled result. Promotion is idempotent, does not re-run enrichment, and does not create a second usage charge. Requires 'purchase' scope.",
      "tags": [
        "integrations",
        "segments",
        "audiences"
      ]
    },
    {
      "id": "delivery-history",
      "name": "Delivery History",
      "description": "List past deliveries for a given audience or file-based match job, or org-wide across all audiences with optional status/destination/audience filters and cursor pagination. Each entry includes destination, status, record count, cost, output format, explicit output compression, stored byte size, and timestamps. Useful for auditing prior purchases or resuming a workflow. Requires 'discovery' scope.",
      "tags": [
        "delivery",
        "history",
        "status"
      ]
    },
    {
      "id": "pricing",
      "name": "Pricing & Quoting",
      "description": "Get a binding price estimate for an audience download. Returns cost_estimate (total, base, one-time deferred file-match cost when applicable, field, and destination surcharges), billing_count, sufficient_balance, shortfall, and already_delivered (true when this exact delivery has been made before and re-delivery is free). LiveRamp and Narrative remain unavailable until their partner pushes can confirm data egress. Requires 'discovery' scope.",
      "tags": [
        "pricing",
        "quotes",
        "delivery"
      ]
    },
    {
      "id": "data-purchase",
      "name": "Audience Delivery",
      "description": "Initiate a direct download for a saved audience (CSV/JSON/JSONL with optional gzip, or Avro with native DEFLATE). The first successful delivery of completed file-match data also emits that run's one-time match usage. Output compression is explicit and never inherited from input uploads. A different format/compression after an already-paid delivery is re-exported without another delivery or match charge. LiveRamp and Narrative remain unavailable until their partner pushes can confirm data egress. Use the pricing skill first to confirm pricing. Requires 'purchase' scope.",
      "tags": [
        "audiences",
        "delivery",
        "activation"
      ]
    },
    {
      "id": "delivery-status",
      "name": "Delivery Status",
      "description": "Check the status and download URLs for a specific delivery. Poll after initiating a delivery to determine when records are ready. Note: download_urls are short-lived presigned GCS URLs regenerated fresh on every GET — do not cache them. Requires 'discovery' scope.",
      "tags": [
        "delivery",
        "status",
        "downloads"
      ]
    },
    {
      "id": "account-info",
      "name": "Account & Balance",
      "description": "Retrieve the org's source-routed billing state: active contract and rated current-period usage, effective prepaid balance after reservations/pending usage, automatic-recharge state, postpay ceiling, payment readiness, and projection staleness. A parent-billed child sees only its own attributed usage and never the agency's pooled balance or invoices. Requires 'account' scope.",
      "tags": [
        "account",
        "usage",
        "balance"
      ]
    },
    {
      "id": "campaign-management",
      "name": "Campaign Management",
      "description": "Create, update, and archive campaign workspaces, including their campaign brief and goals. Link or unlink audiences from campaigns. Pass metadata.campaign_id to supply an active campaign context for the turn. Requires 'purchase' scope. For read-only campaign list and detail requests, submit under the campaign-lookup skill instead — it only requires 'discovery' scope.",
      "tags": [
        "campaigns",
        "audiences",
        "workspace"
      ],
      "examples": [
        "Create a new campaign called Q3 Prospecting with goals for acquiring regional retail customers",
        "Link audience abc123 to campaign xyz789"
      ]
    },
    {
      "id": "campaign-lookup",
      "name": "Campaign Lookup",
      "description": "Read-only campaign inspection: list campaigns or get a single campaign's brief and linked audiences. Pass metadata.campaign_id to supply an active campaign context for the turn. Requires 'discovery' scope.",
      "tags": [
        "campaigns",
        "audiences",
        "workspace"
      ],
      "examples": [
        "List my active campaigns",
        "Show recent deliveries for campaign xyz789"
      ]
    }
  ]
}

Actions

Test in Playground

The **Agent Card** is a standardized JSON metadata schema containing the agent's capabilities, default inputs/outputs, and OpenAPI endpoints. Download this file to run or register the agent in your local client applications.

Registry Metadata

RegisteredSep 24, 2026
Last UpdatedSep 25, 2026
Standarda2a
Sourcewebsite
Last CheckedSep 25, 2026