ZoomInfo · Schema
SegmentConfigListJsonApiModel
JSON API model for a paginated list of segment configs.
CompanyB2BDataSales
Properties
| Name | Type | Description |
|---|---|---|
| data | array | The primary data of the document |
| meta | object | Non-standard meta information about the document |
| links | object | Links related to the primary data |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/gtm/main/json-schema/gtm-segment-config-list-json-api-model-schema.json",
"title": "SegmentConfigListJsonApiModel",
"description": "JSON API model for a paginated list of segment configs.",
"x-generated": "2026-10-20",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/gtm-data-quality-api-v1-api-openapi.yml#/components/schemas/SegmentConfigListJsonApiModel",
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/$defs/SegmentConfig"
},
"description": "The primary data of the document"
},
"meta": {
"allOf": [
{
"$ref": "#/$defs/SegmentConfigListMeta"
}
],
"description": "Non-standard meta information about the document"
},
"links": {
"allOf": [
{
"$ref": "#/$defs/SegmentConfigListLinks"
}
],
"description": "Links related to the primary data"
}
},
"$defs": {
"Segment": {
"type": "object",
"required": [
"label",
"outputValue",
"order",
"rules"
],
"properties": {
"label": {
"type": "string",
"description": "Display label for this segment."
},
"outputValue": {
"type": "string",
"description": "Value written to the output field on the record when this segment matches."
},
"order": {
"type": "integer",
"format": "int32",
"description": "Server-assigned priority order of this segment within the config (0-based, lower = higher priority).",
"readOnly": true
},
"rules": {
"type": "array",
"items": {
"$ref": "#/$defs/SegmentRule"
},
"description": "Ordered list of rules that must be satisfied for this segment to match."
}
},
"description": "A segment within a config: a prioritized set of rules that maps matching records to an output value."
},
"SegmentAction": {
"type": "string",
"enum": [
"FIND_FIRST",
"FIND_LAST",
"FIND_ALL",
"ADD_ALL"
],
"description": "How multiple segments match the same record.",
"x-enumDescriptions": {
"FIND_FIRST": "Return only the first matching segment's output value.",
"FIND_LAST": "Return only the last matching segment's output value.",
"FIND_ALL": "Return all matching segments' output values.",
"ADD_ALL": "Sum all numeric output values from matching segments."
}
},
"SegmentConfig": {
"type": "object",
"required": [
"id",
"type",
"attributes"
],
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the resource"
},
"type": {
"type": "string",
"description": "The type of the resource",
"default": "SegmentConfig",
"pattern": "SegmentConfig"
},
"attributes": {
"allOf": [
{
"$ref": "#/$defs/SegmentConfigAttributes"
}
],
"description": "The attributes defining the resource"
},
"meta": {
"allOf": [
{
"$ref": "#/$defs/SegmentConfigMeta"
}
],
"description": "Non-standard meta information about the resource",
"readOnly": true
}
},
"description": "A segment configuration resource (identity, action, and full segment/rule definitions)."
},
"SegmentConfigAttributes": {
"type": "object",
"required": [
"name",
"action",
"segments",
"fieldsUsedInRules"
],
"properties": {
"name": {
"type": "string",
"description": "Display name for the segment config."
},
"action": {
"allOf": [
{
"$ref": "#/$defs/SegmentAction"
}
],
"description": "How the config handles records that match multiple segments."
},
"mergeOperator": {
"type": "string",
"maxLength": 8,
"description": "Delimiter used to join matched output values when `action` is `FIND_ALL`.\nCommon values: `,` (default), `, `, `;`, `|`, `-`, newline, or tab. Any\nshort string is accepted, so this is a free-form delimiter rather than a\nfixed enum."
},
"segments": {
"type": "array",
"items": {
"$ref": "#/$defs/Segment"
},
"description": "Ordered list of segments defined in this config."
},
"fieldsUsedInRules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Distinct field names referenced by this config's segment rules, sorted\nalphabetically. Divider rules contribute no field. Read-only; derived from\n`segments[].rules[].field`.",
"readOnly": true
}
},
"description": "Full attributes of a segment configuration."
},
"SegmentConfigListLinks": {
"type": "object",
"properties": {
"self": {
"type": "string",
"format": "uri",
"description": "The link that generated the current response document"
},
"first": {
"type": "string",
"format": "uri",
"description": "A link to the first page of data"
},
"last": {
"type": "string",
"format": "uri",
"description": "A link to the last page of data"
},
"prev": {
"type": "string",
"format": "uri",
"description": "A link to the previous page of data"
},
"next": {
"type": "string",
"format": "uri",
"description": "A link to the next page of data"
}
},
"description": "Paging links for segment config list responses."
},
"SegmentConfigListMeta": {
"type": "object",
"required": [
"page"
],
"properties": {
"page": {
"allOf": [
{
"$ref": "#/$defs/SegmentConfigPageMeta"
}
],
"description": "Current page details and totals.",
"readOnly": true
}
},
"description": "Page metadata wrapper for paginated segment config list responses."
},
"SegmentConfigMeta": {
"type": "object",
"required": [
"createdAt",
"updatedAt"
],
"properties": {
"createdAt": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp at which this segment config was created.",
"readOnly": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp at which this segment config was last updated.",
"readOnly": true
}
},
"description": "Non-standard metadata for a segment config."
},
"SegmentConfigPageMeta": {
"type": "object",
"required": [
"number",
"size",
"totalPages",
"totalItems"
],
"properties": {
"number": {
"type": "integer",
"format": "uint32",
"description": "Current page number (1-based).",
"readOnly": true
},
"size": {
"type": "integer",
"format": "uint32",
"description": "Number of items in the current page.",
"readOnly": true
},
"totalPages": {
"type": "integer",
"format": "uint32",
"description": "Total number of pages available.",
"readOnly": true
},
"totalItems": {
"type": "integer",
"format": "uint32",
"description": "Total number of items across all pages.",
"readOnly": true
}
},
"description": "Per-page metadata for paginated segment config list responses."
},
"SegmentRule": {
"type": "object",
"required": [
"operator"
],
"properties": {
"operator": {
"allOf": [
{
"$ref": "#/$defs/SegmentRuleOperator"
}
],
"description": "Comparison operator for this rule. `DIVIDER` is a layout-only boundary that carries no field or value."
},
"field": {
"type": "string",
"description": "Field name to evaluate. Absent for divider operators that separate rule groups."
},
"value": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Values to compare the field against. Treated as an OR-list for most operators."
}
},
"description": "A single rule within a segment, representing one field-condition test."
},
"SegmentRuleOperator": {
"type": "string",
"enum": [
"TEXT_EQUALS",
"TEXT_NOT_EQUALS",
"TEXT_CONTAINS",
"TEXT_CONTAINS_WORD",
"TEXT_NOT_CONTAINS",
"TEXT_NOT_CONTAINS_WORD",
"TEXT_STARTS",
"TEXT_NOT_STARTS",
"TEXT_ENDS",
"TEXT_NOT_ENDS",
"NUM_EQUALS",
"NUM_MORE",
"NUM_LESS",
"NUM_BETWEEN",
"NUM_GREATER_OR_EQUALS",
"NUM_LESS_OR_EQUALS",
"BOOL_TRUE",
"BOOL_FALSE",
"IS_NULL",
"IS_NOT_NULL",
"DIVIDER"
],
"description": "Comparison operator for a segment rule.",
"x-enumDescriptions": {
"TEXT_EQUALS": "Field value equals the comparison value.",
"TEXT_NOT_EQUALS": "Field value does not equal the comparison value.",
"TEXT_CONTAINS": "Field value contains the comparison value as a substring.",
"TEXT_CONTAINS_WORD": "Field value contains the comparison value as a whole word.",
"TEXT_NOT_CONTAINS": "Field value does not contain the comparison value as a substring.",
"TEXT_NOT_CONTAINS_WORD": "Field value does not contain the comparison value as a whole word.",
"TEXT_STARTS": "Field value starts with the comparison value.",
"TEXT_NOT_STARTS": "Field value does not start with the comparison value.",
"TEXT_ENDS": "Field value ends with the comparison value.",
"TEXT_NOT_ENDS": "Field value does not end with the comparison value.",
"NUM_EQUALS": "Numeric field equals the comparison value.",
"NUM_MORE": "Numeric field is greater than the comparison value.",
"NUM_LESS": "Numeric field is less than the comparison value.",
"NUM_BETWEEN": "Numeric field falls between the two comparison values.",
"NUM_GREATER_OR_EQUALS": "Numeric field is greater than or equal to the comparison value.",
"NUM_LESS_OR_EQUALS": "Numeric field is less than or equal to the comparison value.",
"BOOL_TRUE": "Boolean field is true.",
"BOOL_FALSE": "Boolean field is false.",
"IS_NULL": "Field has no value.",
"IS_NOT_NULL": "Field has a value.",
"DIVIDER": "Layout-only OR boundary between rule groups; carries no field or value."
}
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/gtm-segment-config-list-json-api-model"
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.