Skip to content

A2A agent

A2A lets another AI system hand a defined job to the Infinite Audience agent, check progress, and receive a structured result.

Action Endpoint
Read the agent card GET https://a2a.infiniteaudience.ai/.well-known/agent.json
Submit a task POST https://a2a.infiniteaudience.ai/tasks
Check progress GET https://a2a.infiniteaudience.ai/tasks/{id}
Cancel a task POST https://a2a.infiniteaudience.ai/tasks/{id}/cancel

Use an Infinite Audience bearer token on every task request.

  1. Choose a skill from the live list below.
  2. Submit the skill ID and a clear natural-language brief.
  3. Check the task until its status is completed, failed, or cancelled.
  4. Read the answer from result_message.parts.
const response = await fetch('https://a2a.infiniteaudience.ai/tasks', {
method: 'POST',
headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
skill: 'discovery-count',
messages: [{ role: 'user', parts: [{ type: 'text', text: 'Count customers in California ages 25–34.' }] }],
}),
});
const { task_id } = await response.json();

The agent card supplies this list at build time, so it stays aligned with the deployed task surface.

discovery-count — Discovery Count discovery

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 consuming credits. Requires 'discovery' scope.

discovery-lookup — Discovery Lookup discovery

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. Requires 'discovery' scope.

discovery-crosstab — Discovery Crosstab discovery

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. Requires 'discovery' scope.

discovery-overlap — Discovery Overlap discovery

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. Requires 'discovery' scope.

audience-management — Audience Management purchase

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.

segment-management — Segment Management purchase

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 the read-only get_segment_demographics, get_segment_audiences, and count_segment tools (which only require 'discovery' scope), submit under the segment-lookup skill instead.

segment-lookup — Segment Lookup discovery

Read-only 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). Requires 'discovery' scope.

catalog — Data Catalog discovery

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.

identity-resolution — Identity Resolution & Match History purchase

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.

match-history — Match History discovery

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.

integration-result-history — Integration Result History discovery

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.

integration-result-promotion — Save Integration Result purchase

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.

delivery-history — Delivery History discovery

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.

pricing — Pricing & Quoting discovery

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.

data-purchase — Data Purchase & Delivery 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.

delivery-status — Delivery Status discovery

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.

account-info — Account & Balance account

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.

credit-purchase — Credit Purchase account

Begin an idempotent, payment-gated credit top-up for a self-billed prepaid org owner. Returns durable pending/action-required/paid state and a verified hosted-invoice link only when customer action is required. Purchases of $250+/$500+/$1,000+ earn 5%/10%/15% promotional credit after verified payment. Postpay and parent-billed orgs cannot top up. Requires 'account' scope.

subscription-management — Subscription Management account

Open the hosted billing portal for payment-method management and external invoice history only. Contract tier/cadence changes are scheduled for the next billing period, while cancellation and reversal use dedicated self-service tools so commitment boundaries remain enforceable. Requires 'account' scope.

campaign-management — Campaign Management purchase

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 operations (list/get campaigns, retrieve campaign operations), submit under the campaign-lookup skill instead — it only requires 'discovery' scope.

campaign-lookup — Campaign Lookup discovery

Read-only campaign inspection: list campaigns, get a single campaign's brief and linked audiences, or retrieve recent operations (delivery/segment/audience/match events) for a campaign. Pass metadata.campaign_id to supply an active campaign context for the turn. Requires 'discovery' scope.