Infinite Audience · Schema

SegmentObject

CompanyIdentity ResolutionData EnrichmentAudiencesMarketingMCPA2A

Properties

Name Type Description
data_release object
integration_collection_provenance object Bounded source summary for a segment built from saved integration matches; null otherwise.
segment_id string Unique segment identifier
name string Display name of the segment
subtype string Segment subtype. Determines which additional attributes are present. filter = saved filter criteria; matched = customer list upload with identity resolution; similarity = lookalike model; propensity =
status string pending = computation in progress (matched/similarity/propensity during creation); active = fully ready; failed = workflow or enrichment error (see error_message); archived = hidden from the default s
record_count integernull Total matched/qualified records. Null while pending or if count has not been run.
expires_at string Date-only ISO string (90-day hard expiry from creation) for a persistent segment; a full ISO datetime (short, hour-granular TTL) while `ephemeral` is true.
visibility string org (default) — visible to all members of the org. private — visible only to the creating user.
current_version integernull filter subtype only. Current version counter.
record_limit integernull filter subtype only — membership cap; null when uncapped (see POST /v1/segments)
filter_groups array filter subtype only. Complete saved definition; a single AND group represents a flat input.
file_format stringnull matched subtype only. Input file format.
compression stringnull matched subtype only. Input artifact compression, normalized to none by current handlers.
shard_count integernull matched subtype only. Number of same-format input objects, normalized to 1 for unsharded uploads.
column_mappings objectnull matched subtype only. Source column name → standard identity attribute mappings. Populated after the analyze-and-store workflow gate runs.
mapping_confirmed booleannull matched subtype only. True once column mappings have been confirmed.
input_record_count integernull matched subtype only. Number of rows in the original upload.
match_count integernull matched subtype only. Rows that resolved to a known identity after enrichment.
match_rate numbernull matched subtype only. match_count / input_record_count.
upload_url stringnull matched subtype only. 30-minute signed upload URL. Present on create and refresh responses only, when shard_count was 1 (the default) — absent when sharded, use upload_urls instead.
upload_urls arraynull matched subtype only. N signed upload URLs (index-ordered). Present on create and refresh responses only when shard_count > 1 was requested — upload_url is absent. Every CSV shard must include the sam
upload_expires_at stringnull matched subtype only. Expiry of upload_url/upload_urls.
error_message stringnull Present when status is failed. Describes the reason for failure.
source_data_segment_id stringnull matched subtype only. Opaque, read-only reference to stored match results when they are shared or versioned independently from the segment metadata. Null when no separate result reference is needed.
seed_description stringnull similarity subtype only. Natural language ICP persona description used as seed.
seed_segment_id stringnull similarity subtype only. ID of an existing segment used as the lookalike seed.
workflow_run_id stringnull similarity and propensity subtypes. The workflow run ID. Poll GET /v1/workflows/{workflow_run_id} to monitor progress.
positive_class_segment_id stringnull propensity subtype only. ID of the segment whose members are the positive training class.
parent_segment_id stringnull ID of the segment this was duplicated or derived from, if applicable.
derived_from stringnull Root ancestor segment ID. Stable across duplicate-of-duplicate chains — always points at the original segment, never an intermediate duplicate.
parent_segment_version integernull Version of the parent segment pinned at duplicate time (current_version for filter parents; snapshot_version otherwise). Null on segments that are not duplicates.
origin_campaign_id stringnull ID of the campaign whose chat session first produced this segment. Metadata only — does not restrict the segment to that campaign. Present only when the segment was created via POST /v1/segments with
usage object Cross-campaign usage stats. Only present on GET /v1/segments/{id} — not included on list responses. Useful for understanding impact before archiving.
created_at string
updated_at string
View JSON Schema on GitHub

JSON Schema

infiniteaudience-ai-segment-object-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/infiniteaudience-ai/main/json-schema/infiniteaudience-ai-segment-object-schema.json",
  "title": "SegmentObject",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/infiniteaudience-ai-openapi.yml#/components/schemas/SegmentObject",
  "type": "object",
  "required": [
    "segment_id",
    "name",
    "subtype",
    "status",
    "record_count",
    "expires_at",
    "integration_collection_provenance",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "data_release": {
      "oneOf": [
        {
          "$ref": "#/$defs/EnrichmentRelease"
        },
        {
          "type": "null"
        }
      ]
    },
    "integration_collection_provenance": {
      "oneOf": [
        {
          "$ref": "#/$defs/IntegrationCollectionProvenance"
        },
        {
          "type": "null"
        }
      ],
      "description": "Bounded source summary for a segment built from saved integration matches; null otherwise."
    },
    "segment_id": {
      "type": "string",
      "description": "Unique segment identifier"
    },
    "name": {
      "type": "string",
      "description": "Display name of the segment"
    },
    "subtype": {
      "type": "string",
      "enum": [
        "filter",
        "matched",
        "similarity",
        "propensity"
      ],
      "description": "Segment subtype. Determines which additional attributes are present. filter = saved filter criteria; matched = customer list upload with identity resolution; similarity = lookalike model; propensity = ML scoring model.\n"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "active",
        "failed",
        "archived",
        "expired"
      ],
      "description": "pending = computation in progress (matched/similarity/propensity during creation); active = fully ready; failed = workflow or enrichment error (see error_message); archived = hidden from the default segment catalog and new audience compositions, but otherwise fully functional — audiences that already reference an archived segment are unaffected, and it can be restored with PATCH status:active at any time. Distinct from DELETE, which is not reversible and does change referencing audiences' composition; expired = past 90-day TTL.\n"
    },
    "record_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Total matched/qualified records. Null while pending or if count has not been run."
    },
    "expires_at": {
      "type": "string",
      "description": "Date-only ISO string (90-day hard expiry from creation) for a persistent segment; a full ISO datetime (short, hour-granular TTL) while `ephemeral` is true.\n"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "org",
        "private"
      ],
      "description": "org (default) — visible to all members of the org. private — visible only to the creating user.\n"
    },
    "current_version": {
      "type": [
        "integer",
        "null"
      ],
      "description": "filter subtype only. Current version counter."
    },
    "record_limit": {
      "type": [
        "integer",
        "null"
      ],
      "description": "filter subtype only — membership cap; null when uncapped (see POST /v1/segments)"
    },
    "filter_groups": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/FilterGroup"
      },
      "description": "filter subtype only. Complete saved definition; a single AND group represents a flat input."
    },
    "file_format": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "csv",
        "avro",
        "json",
        "jsonl"
      ],
      "description": "matched subtype only. Input file format."
    },
    "compression": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "none",
        "gzip",
        null
      ],
      "description": "matched subtype only. Input artifact compression, normalized to none by current handlers.\n"
    },
    "shard_count": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 50,
      "description": "matched subtype only. Number of same-format input objects, normalized to 1 for unsharded uploads.\n"
    },
    "column_mappings": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": "string"
      },
      "description": "matched subtype only. Source column name → standard identity attribute mappings. Populated after the analyze-and-store workflow gate runs.\n"
    },
    "mapping_confirmed": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "matched subtype only. True once column mappings have been confirmed."
    },
    "input_record_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "matched subtype only. Number of rows in the original upload."
    },
    "match_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "matched subtype only. Rows that resolved to a known identity after enrichment."
    },
    "match_rate": {
      "type": [
        "number",
        "null"
      ],
      "description": "matched subtype only. match_count / input_record_count."
    },
    "upload_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "matched subtype only. 30-minute signed upload URL. Present on create and refresh responses only, when shard_count was 1 (the default) — absent when sharded, use upload_urls instead.\n"
    },
    "upload_urls": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "description": "matched subtype only. N signed upload URLs (index-ordered). Present on create and refresh responses only when shard_count > 1 was requested — upload_url is absent. Every CSV shard must include the same header row.\n"
    },
    "upload_expires_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "matched subtype only. Expiry of upload_url/upload_urls."
    },
    "error_message": {
      "type": [
        "string",
        "null"
      ],
      "description": "Present when status is failed. Describes the reason for failure.\n"
    },
    "source_data_segment_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "matched subtype only. Opaque, read-only reference to stored match results when they are shared or versioned independently from the segment metadata. Null when no separate result reference is needed.\n"
    },
    "seed_description": {
      "type": [
        "string",
        "null"
      ],
      "description": "similarity subtype only. Natural language ICP persona description used as seed."
    },
    "seed_segment_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "similarity subtype only. ID of an existing segment used as the lookalike seed."
    },
    "workflow_run_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "similarity and propensity subtypes. The workflow run ID. Poll GET /v1/workflows/{workflow_run_id} to monitor progress.\n"
    },
    "positive_class_segment_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "propensity subtype only. ID of the segment whose members are the positive training class."
    },
    "parent_segment_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of the segment this was duplicated or derived from, if applicable."
    },
    "derived_from": {
      "type": [
        "string",
        "null"
      ],
      "description": "Root ancestor segment ID. Stable across duplicate-of-duplicate chains — always points at the original segment, never an intermediate duplicate.\n"
    },
    "parent_segment_version": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Version of the parent segment pinned at duplicate time (current_version for filter parents; snapshot_version otherwise). Null on segments that are not duplicates.\n"
    },
    "origin_campaign_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of the campaign whose chat session first produced this segment. Metadata only — does not restrict the segment to that campaign. Present only when the segment was created via POST /v1/segments with a campaign_id.\n"
    },
    "usage": {
      "type": "object",
      "description": "Cross-campaign usage stats. Only present on GET /v1/segments/{id} — not included on list responses. Useful for understanding impact before archiving.\n",
      "properties": {
        "audience_count": {
          "type": "integer",
          "description": "Number of active audiences that reference this segment."
        },
        "campaign_count": {
          "type": "integer",
          "description": "Number of distinct campaigns those audiences belong to."
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "$defs": {
    "EnrichmentRelease": {
      "type": "object",
      "required": [
        "major",
        "minor"
      ],
      "description": "Delivered IAG refresh version. Independent of license status. Null provenance means unknown; a newer refresh-major can prompt a refresh through existing workflows. Active licenses and existing identity IDs support free refresh; normal charges may apply otherwise.",
      "properties": {
        "major": {
          "type": "integer",
          "minimum": 1
        },
        "minor": {
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "Filter": {
      "type": "object",
      "description": "A single filter condition for audience discovery or job execution",
      "required": [
        "field",
        "op"
      ],
      "properties": {
        "field": {
          "type": "string",
          "description": "Canonical catalog field_name (e.g. age or state). ZIP5 also accepts zip, zip_code, or postal_code as input aliases; saved responses use zip5."
        },
        "op": {
          "type": "string",
          "enum": [
            "=",
            "!=",
            "<",
            "<=",
            ">",
            ">=",
            "IN",
            "NOT IN",
            "BETWEEN",
            "LIKE",
            "ARRAY_CONTAINS",
            "ARRAY_CONTAINS_ANY",
            "IS NULL",
            "IS NOT NULL"
          ],
          "description": "Comparison operator"
        },
        "text_comparison": {
          "type": "string",
          "enum": [
            "exact",
            "case_insensitive"
          ],
          "description": "Optional STRING comparison mode for =, !=, IN, NOT IN, and LIKE, or ARRAY<STRING> membership mode for ARRAY_CONTAINS and ARRAY_CONTAINS_ANY. Defaults to exact. Case-insensitive mode applies Unicode case folding to both the stored value and the supplied value.\n"
        },
        "trim_whitespace": {
          "type": "boolean",
          "description": "Optionally trim leading and trailing whitespace on both sides of a STRING or ARRAY<STRING> comparison. Defaults to false; independent of text_comparison.\n"
        },
        "value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ],
          "description": "The value to match against. For state, a published two-letter code or full State name is accepted and normalized to the code. Scalar types (`string`, `number`, `boolean`) are used for single-value operators (`=`, `!=`, `<`, `<=`, `>`, `>=`, `LIKE`, `ARRAY_CONTAINS`). Pass an **array** for `IN`, `NOT IN`, and `ARRAY_CONTAINS_ANY` — pass the array directly with no comma-encoding. `BETWEEN` takes a two-element array `[low, high]`. Omit entirely for `IS NULL` / `IS NOT NULL` checks.\n"
        }
      }
    },
    "FilterGroup": {
      "type": "object",
      "description": "A group of Filter conditions. All `filters` within a single group are **always ANDed together** — there is no per-group intra-operator. The `combinator` attribute is an **inter-group** operator: it controls how this group is joined to the immediately preceding group in the array. The `combinator` on the first group (index 0) is always ignored.\n\nExample — `(city = \"NYC\" AND state = \"NY\") OR (state = \"CA\")`:\n```json [\n  { \"id\": \"g1\", \"filters\": [{\"field\":\"city\",\"op\":\"=\",\"value\":\"NYC\"},\n                            {\"field\":\"state\",\"op\":\"=\",\"value\":\"NY\"}],\n    \"combinator\": \"AND\" },\n  { \"id\": \"g2\", \"filters\": [{\"field\":\"state\",\"op\":\"=\",\"value\":\"CA\"}],\n    \"combinator\": \"OR\" }\n] ```\nGroup g1's `combinator` is irrelevant (it is the first group). Group g2's `combinator: \"OR\"` means the result is `(g1) OR (g2)`.\n",
      "required": [
        "id",
        "filters",
        "combinator"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Stable identifier (UUID or NanoID). Used to track groups across edits.\n"
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Filter"
          },
          "description": "One or more filter conditions. All conditions in this array are combined with AND. Provide at least one filter per group.\n"
        },
        "combinator": {
          "type": "string",
          "enum": [
            "AND",
            "OR"
          ],
          "description": "**Inter-group operator.** Joins this group to the previous group in the array. `AND` narrows the result; `OR` broadens it. Ignored on the first group (index 0) — that group has no predecessor to join.\n"
        }
      }
    },
    "IntegrationCollectionProvenance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "version",
        "materialization_id",
        "collection_id",
        "mode",
        "providers",
        "connection_count",
        "source_cutoff_at",
        "source_observations",
        "unique_identities",
        "materialized_at"
      ],
      "properties": {
        "version": {
          "type": "integer",
          "const": 1
        },
        "materialization_id": {
          "type": "string",
          "pattern": "^imm_[a-f0-9]{40}$"
        },
        "collection_id": {
          "type": "string"
        },
        "mode": {
          "type": "string",
          "enum": [
            "new_segment",
            "add_to_segment"
          ]
        },
        "providers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "connection_count": {
          "type": "integer",
          "minimum": 0
        },
        "source_cutoff_at": {
          "type": "string",
          "format": "date-time"
        },
        "source_observations": {
          "type": "integer",
          "minimum": 0
        },
        "unique_identities": {
          "type": "integer",
          "minimum": 0
        },
        "materialized_at": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/infiniteaudience-ai-segment-object"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.