AgentClientFacts
The five top-level facts and `source` are the bookkeeping agent's contract. `confirmedAt` is when the last of the four facts was confirmed, null until all four are; `source` is the weakest source among them (default, then inferred, then confirmed). Defaults: materiality 100000 cents ($1,000), capitalization threshold 250000 cents ($2,500, the IRS de minimis safe harbor).
Properties
| Name | Type | Description |
|---|---|---|
| materialityCents | integer | |
| capitalizationThresholdCents | integer | |
| revenueGlAccountIds | array | |
| owners | array | |
| confirmedAt | stringnull | |
| source | object | |
| facts | object | Per-fact source, evidence and confirmation. |
| revenueAccounts | array | Every revenue account of the company, for display and editing. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/medianfi-com/json-schema/medianfi-com-agent-client-facts-schema.json",
"title": "AgentClientFacts",
"description": "The five top-level facts and `source` are the bookkeeping agent's contract. `confirmedAt` is when the last of the four facts was confirmed, null until all four are; `source` is the weakest source among them (default, then inferred, then confirmed). Defaults: materiality 100000 cents ($1,000), capitalization threshold 250000 cents ($2,500, the IRS de minimis safe harbor).\n",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/medianfi-com-openapi.json#/components/schemas/AgentClientFacts",
"type": "object",
"required": [
"materialityCents",
"capitalizationThresholdCents",
"revenueGlAccountIds",
"owners",
"confirmedAt",
"source",
"facts",
"revenueAccounts"
],
"properties": {
"materialityCents": {
"type": "integer",
"minimum": 0
},
"capitalizationThresholdCents": {
"type": "integer",
"minimum": 0
},
"revenueGlAccountIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"owners": {
"type": "array",
"items": {
"$ref": "#/$defs/AgentClientOwner"
}
},
"confirmedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"source": {
"$ref": "#/$defs/AgentClientFactSource"
},
"facts": {
"type": "object",
"description": "Per-fact source, evidence and confirmation.",
"required": [
"owners",
"revenueGlAccountIds",
"capitalizationThresholdCents",
"materialityCents"
],
"properties": {
"owners": {
"type": "object",
"required": [
"value",
"source",
"evidence",
"confirmedAt",
"confirmedByUserId",
"confirmedByName"
],
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/$defs/AgentClientOwner"
}
},
"source": {
"$ref": "#/$defs/AgentClientFactSource"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"confirmedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"confirmedByUserId": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"confirmedByName": {
"type": [
"string",
"null"
]
}
}
},
"revenueGlAccountIds": {
"type": "object",
"required": [
"value",
"source",
"evidence",
"confirmedAt",
"confirmedByUserId",
"confirmedByName"
],
"properties": {
"value": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"source": {
"$ref": "#/$defs/AgentClientFactSource"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"confirmedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"confirmedByUserId": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"confirmedByName": {
"type": [
"string",
"null"
]
}
}
},
"capitalizationThresholdCents": {
"type": "object",
"required": [
"value",
"source",
"evidence",
"confirmedAt",
"confirmedByUserId",
"confirmedByName"
],
"properties": {
"value": {
"type": "integer",
"minimum": 0
},
"source": {
"$ref": "#/$defs/AgentClientFactSource"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"confirmedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"confirmedByUserId": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"confirmedByName": {
"type": [
"string",
"null"
]
}
}
},
"materialityCents": {
"type": "object",
"required": [
"value",
"source",
"evidence",
"confirmedAt",
"confirmedByUserId",
"confirmedByName"
],
"properties": {
"value": {
"type": "integer",
"minimum": 0
},
"source": {
"$ref": "#/$defs/AgentClientFactSource"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"confirmedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"confirmedByUserId": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"confirmedByName": {
"type": [
"string",
"null"
]
}
}
}
}
},
"revenueAccounts": {
"type": "array",
"description": "Every revenue account of the company, for display and editing.",
"items": {
"type": "object",
"required": [
"id",
"code",
"name",
"isActive"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"code": {
"type": "string"
},
"name": {
"type": "string"
},
"isActive": {
"type": "boolean"
}
}
}
}
},
"$defs": {
"AgentClientFactSource": {
"type": "string",
"enum": [
"inferred",
"default",
"confirmed"
]
},
"AgentClientOwner": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"relationship"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The name or payee identity as it appears on the client's bank rows."
},
"relationship": {
"type": "string",
"enum": [
"owner",
"investor",
"related_party"
]
}
}
}
}
}
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
curl "https://apis.io/api/v1/json-schemas/medianfi-com-agent-client-facts"
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.