CustomDomain · Schema
ConnectAnalytics
CompanyCustom DomainsDNSSSLEdge ProxySaaS InfrastructureWhite LabelMCP
Properties
| Name | Type | Description |
|---|---|---|
| window | object | |
| widget | object | |
| connections | object | |
| daily | array | |
| audience | object | Who opened the widget, from the session each widget open records (sessions from before this was recorded have none). Each list counts sessions, how many reached a finish screen (`succeeded`) and how m |
| install | object | Whether the widget has been seen in the builder's own product, per application, from the session each widget open records. A session is a console test when its token's end user is `console: |
| secure_sign_in | object | The cloud browser sessions started in the window. `failures` is keyed by the failure taxonomy (bot_wall, captcha, region_blocked, vendor_error, user_cancel and the rest); `proxy_sensitive` marks the f |
| truncated | boolean |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/customdomain-ai/json-schema/customdomain-ai-connect-analytics-schema.json",
"title": "ConnectAnalytics",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/customdomain-ai-openapi.yml#/components/schemas/ConnectAnalytics",
"type": "object",
"required": [
"window",
"widget",
"connections",
"daily",
"truncated"
],
"properties": {
"window": {
"type": "object",
"properties": {
"from": {
"type": "string",
"format": "date-time"
},
"to": {
"type": "string",
"format": "date-time"
},
"days": {
"type": "integer"
},
"application_id": {
"type": "string"
}
}
},
"widget": {
"type": "object",
"properties": {
"sessions": {
"type": "integer"
},
"entered_domain": {
"type": "integer"
},
"analyzed": {
"type": "integer"
},
"offered_automatic": {
"type": "integer"
},
"shown_manual": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"succeeded_automatic": {
"type": "integer"
},
"errored": {
"type": "integer"
},
"conversion_rate": {
"type": "number"
},
"median_seconds_to_success": {
"type": "integer"
},
"drop_off": {
"type": "array",
"items": {
"$ref": "#/$defs/AnalyticsCount"
}
},
"errors": {
"type": "array",
"items": {
"$ref": "#/$defs/AnalyticsCount"
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"sessions": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"automatic": {
"type": "integer"
}
}
}
},
"domain_kinds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"sessions": {
"type": "integer"
},
"succeeded": {
"type": "integer"
}
}
}
}
}
},
"connections": {
"type": "object",
"properties": {
"total": {
"type": "integer"
},
"live": {
"type": "integer"
},
"pending": {
"type": "integer"
},
"propagating": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"live_rate": {
"type": "number"
},
"median_seconds_to_live": {
"type": "integer"
},
"by_provider": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"total": {
"type": "integer"
},
"live": {
"type": "integer"
},
"pending": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"top_stuck": {
"type": "string",
"description": "The most common reason this provider's not-live domains are stuck (a key of stuck). Absent when none are."
},
"top_stuck_count": {
"type": "integer"
},
"median_seconds_to_live": {
"type": "integer",
"description": "Median over this provider's live domains; 0 when none."
}
}
}
},
"by_method": {
"type": "array",
"items": {
"$ref": "#/$defs/AnalyticsGroup"
}
},
"by_kind": {
"type": "array",
"items": {
"$ref": "#/$defs/AnalyticsGroup"
}
},
"stuck": {
"type": "array",
"items": {
"$ref": "#/$defs/AnalyticsCount"
}
},
"time_to_live": {
"type": "array",
"description": "Domains that went live by how long they took from being added: under_5m, 5m_to_1h, 1h_to_1d, over_1d, always all four in that order.",
"items": {
"$ref": "#/$defs/AnalyticsCount"
}
}
}
},
"daily": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"sessions": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"created": {
"type": "integer"
},
"went_live": {
"type": "integer"
}
}
}
},
"audience": {
"type": "object",
"description": "Who opened the widget, from the session each widget open records (sessions from before this was recorded have none). Each list counts sessions, how many reached a finish screen (`succeeded`) and how many of their domains are live (`went_live`). Countries, browsers and systems list the eight busiest, then `other`; `unknown` is last.",
"properties": {
"sessions": {
"type": "integer"
},
"devices": {
"type": "array",
"items": {
"$ref": "#/$defs/AudienceRow"
},
"description": "desktop, mobile, tablet, bot or unknown."
},
"countries": {
"type": "array",
"items": {
"$ref": "#/$defs/AudienceRow"
},
"description": "ISO 3166-1 alpha-2 codes."
},
"browsers": {
"type": "array",
"items": {
"$ref": "#/$defs/AudienceRow"
}
},
"systems": {
"type": "array",
"items": {
"$ref": "#/$defs/AudienceRow"
}
},
"embeds": {
"type": "array",
"items": {
"$ref": "#/$defs/AudienceRow"
},
"description": "embedded, modal or unknown."
}
}
},
"install": {
"type": "object",
"description": "Whether the widget has been seen in the builder's own product, per application, from the session each widget open records. A session is a console test when its token's end user is `console:<member>` (the console's Try it live and welcome domain step); every other session is the product's. The console's design preview opens no session. Counts are sessions. `application_id` narrows it like the rest; an application with no session is not listed.",
"required": [
"applications"
],
"properties": {
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"application_id": {
"type": "string"
},
"product_sessions": {
"type": "integer",
"description": "Every session of the product ever recorded."
},
"test_sessions": {
"type": "integer",
"description": "Every console test session ever recorded."
},
"window_product_sessions": {
"type": "integer",
"description": "The product sessions that started inside the window."
},
"window_test_sessions": {
"type": "integer",
"description": "The console test sessions that started inside the window."
},
"last_product_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "When a product session last had an event; null when none ever did."
},
"last_product_host": {
"type": "string",
"description": "The page origin (scheme, host, port, never a path) the newest product session reported; empty when it reported none."
},
"last_test_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
}
}
}
}
},
"secure_sign_in": {
"type": "object",
"description": "The cloud browser sessions started in the window. `failures` is keyed by the failure taxonomy (bot_wall, captcha, region_blocked, vendor_error, user_cancel and the rest); `proxy_sensitive` marks the four a proxy in the customer's country could change. `proxy` has one row for the sessions without a vendor proxy and one for those with one, when there were any.",
"properties": {
"sessions": {
"type": "integer"
},
"signed_in": {
"type": "integer"
},
"done": {
"type": "integer"
},
"done_manual": {
"type": "integer"
},
"sign_in_rate": {
"type": "number"
},
"average_seconds_to_sign_in": {
"type": "integer"
},
"average_seconds_to_done": {
"type": "integer"
},
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"sessions": {
"type": "integer"
},
"signed_in": {
"type": "integer"
},
"planned": {
"type": "integer"
},
"applied": {
"type": "integer"
},
"done": {
"type": "integer"
},
"done_manual": {
"type": "integer"
}
}
}
},
"failures": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"sessions": {
"type": "integer"
},
"with_proxy": {
"type": "integer"
},
"without_proxy": {
"type": "integer"
},
"proxy_sensitive": {
"type": "boolean"
}
}
}
},
"proxy": {
"type": "array",
"items": {
"type": "object",
"properties": {
"proxy": {
"type": "boolean"
},
"sessions": {
"type": "integer"
},
"signed_in": {
"type": "integer"
},
"done": {
"type": "integer"
},
"blocked": {
"type": "integer",
"description": "Ended in bot_wall, captcha, region_blocked or vendor_error."
},
"sign_in_rate": {
"type": "number"
},
"blocked_rate": {
"type": "number"
}
}
}
}
}
},
"truncated": {
"type": "boolean"
}
},
"$defs": {
"AnalyticsCount": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"count": {
"type": "integer"
}
}
},
"AnalyticsGroup": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"total": {
"type": "integer"
},
"live": {
"type": "integer"
},
"median_seconds_to_live": {
"type": "integer",
"description": "Median over this group's live domains; 0 when none."
}
}
},
"AudienceRow": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"sessions": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"went_live": {
"type": "integer"
}
}
}
}
}
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/customdomain-ai-connect-analytics"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.