Infinite Audience
a2a.infiniteaudience.ai
· NO FAIT (dba Infinite Audience)
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.
a2a.infiniteaudience.ai via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
C
Conformance score: 73/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | |
|---|---|---|
| 2026-09-24 23:02:53 current | b9b088ff2b03… |
view → |
Endpoints
| Agent card | https://a2a.infiniteaudience.ai/.well-known/agent-card.json |
| Provider | https://infiniteaudience.ai |
| Docs | https://docs.infiniteaudience.ai/agents/a2a/ |
Skills · 19 declared · mapped to canonical taxonomy
Count matching records in the audience graph given geo, demographic, behavioral, or custom filter criteria. Accepts saved segment IDs, audience IDs, multi-segme…
Return masked sample rows and field metadata for a defined audience without purchasing records. Accepts saved segment IDs, audience IDs, multi-segment compositi…
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, mul…
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…
Create and manage audiences: composition wrappers that group one or more segments for delivery. Audiences have no subtype — use segment-management to create typ…
Create and manage segments of all types: filter (criteria-based), matched (uploaded CSV/JSON/JSONL/Avro lists, optionally gzip-compressed and split into same-fo…
Segment inspection: get a demographic breakdown via get_segment_demographics (any subtype — non-filter segments resolve via the same ID-set composition audience…
Browse the enrichment field catalog (available data attributes, coverage rates, and pricing structure: base rate, field surcharges, destination surcharges). Cal…
Synchronous or file-based identity resolution, plus full match history access. Synchronous inline resolution for up to 100 contact records (email, phone, name, …
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/…
List or retrieve safe, retained integration activity without exposing private workflow artifacts. Results include provenance, counts, selected fields, billing r…
Promote an eligible integration result into durable Segment and Audience objects using the exact settled result. Promotion is idempotent, does not re-run enrich…
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…
Get a binding price estimate for an audience download. Returns cost_estimate (total, base, one-time deferred file-match cost when applicable, field, and destina…
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 fil…
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-…
Retrieve the org's source-routed billing state: active contract and rated current-period usage, effective prepaid balance after reservations/pending usage, auto…
Create, update, and archive campaign workspaces, including their campaign brief and goals. Link or unlink audiences from campaigns. Pass metadata.campaign_id to…
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 cont…
Health · last 8 probes
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/a2a.infiniteaudience.ai) [](https://agenstry.com/agents/a2a.infiniteaudience.ai) [](https://agenstry.com/agents/a2a.infiniteaudience.ai) [](https://agenstry.com/agents/a2a.infiniteaudience.ai)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"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\u2019s 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\u2019s 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 \u2014 use segment-management to create typed cohorts. Duplicate an existing audience via the duplicate_audience tool \u2014 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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"
]
}
]
}