Properties
| Name | Type | Description |
|---|---|---|
| object | string | |
| valid | boolean | |
| accepted | number | |
| rejected | array | The first 100 rejections; `rejected_count` is the total. |
| rejected_count | number | |
| warnings | array | The first 100 warnings; `warnings_count` is the total. |
| warnings_count | number | |
| normalized_events | array | The accepted events as `POST /v1/events` would store them. Send them back as-is. |
| next_steps | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/argus-town/json-schema/argus-town-event-validation-schema.json",
"title": "EventValidation",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/argus-town-openapi.json#/components/schemas/EventValidation",
"type": "object",
"required": [
"object",
"valid",
"accepted",
"rejected",
"rejected_count",
"warnings",
"warnings_count",
"normalized_events",
"next_steps"
],
"properties": {
"object": {
"type": "string",
"enum": [
"event_validation"
]
},
"valid": {
"type": "boolean"
},
"accepted": {
"type": "number"
},
"rejected": {
"type": "array",
"items": {
"$ref": "#/$defs/EventRejection"
},
"description": "The first 100 rejections; `rejected_count` is the total."
},
"rejected_count": {
"type": "number"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/$defs/EventWarning"
},
"description": "The first 100 warnings; `warnings_count` is the total."
},
"warnings_count": {
"type": "number"
},
"normalized_events": {
"type": "array",
"items": {
"$ref": "#/$defs/EventInput"
},
"description": "The accepted events as `POST /v1/events` would store them. Send them back as-is."
},
"next_steps": {
"type": "array",
"items": {
"$ref": "#/$defs/NextStepItem"
}
}
},
"additionalProperties": true,
"$defs": {
"EventInput": {
"type": "object",
"required": [],
"properties": {
"id": {
"type": "string",
"description": "Your id for this event, 16 to 64 characters, unique per source. Re-sending an id is a no-op. Omit it and Argus mints an `evt_` id."
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Provider slug, for example `openai`. Derived from `hostname` when omitted."
},
"hostname": {
"type": "string"
},
"connection": {
"type": "string",
"description": "Attribute the event to this connection (`conn_...`). It must exist in the project."
},
"endpoint": {
"type": "string"
},
"method": {
"type": "string"
},
"model": {
"type": "string"
},
"operation": {
"type": "string"
},
"cost_usd": {
"type": "number",
"description": "What the call cost. Omit it and Argus prices the event from `model` and `units`."
},
"cost_provenance": {
"type": "string",
"enum": [
"provider_reported",
"app_reported"
]
},
"provider_request_id": {
"type": "string"
},
"units": {
"type": "object",
"required": [],
"properties": {},
"additionalProperties": {
"type": "number"
},
"description": "For example `input_tokens`, `output_tokens`, `requests`, `credits`."
},
"tokens_input": {
"type": "number"
},
"tokens_output": {
"type": "number"
},
"requests": {
"type": "number"
},
"status": {
"type": "number"
},
"latency_ms": {
"type": "number"
},
"credits_spent": {
"type": "number"
},
"credits_remaining": {
"type": "number"
},
"metadata": {
"type": "object",
"required": [],
"properties": {},
"additionalProperties": {
"type": "string"
}
},
"occurred_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
],
"description": "ISO 8601 string or epoch milliseconds. Defaults to receipt time."
},
"rate_limit": {
"$ref": "#/$defs/RateLimitInput"
},
"rate_limits": {
"type": "array",
"items": {
"$ref": "#/$defs/RateLimitInput"
}
},
"pricing_override": {
"type": "object",
"required": [
"rates"
],
"properties": {
"rates": {
"type": "array",
"items": {
"type": "object",
"required": [
"unit",
"nano_usd_per_unit"
],
"properties": {
"unit": {
"type": "string"
},
"nano_usd_per_unit": {
"type": "number"
},
"sku": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"EventRejection": {
"type": "object",
"required": [
"index",
"id",
"code",
"message"
],
"properties": {
"index": {
"type": "number"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"code": {
"type": "string",
"enum": [
"invalid_event",
"event_too_large",
"invalid_event_id",
"duplicate_id",
"outside_backfill_window",
"unknown_connection",
"connection_limit"
]
},
"message": {
"type": "string"
}
},
"additionalProperties": true
},
"EventWarning": {
"type": "object",
"required": [
"index",
"code",
"field",
"message"
],
"properties": {
"index": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"code": {
"type": "string",
"enum": [
"unknown_field",
"occurred_at_clamped",
"provider_unresolved"
]
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"message": {
"type": "string"
}
},
"additionalProperties": true
},
"NextStepItem": {
"type": "object",
"required": [
"rel",
"method",
"href",
"why"
],
"properties": {
"rel": {
"type": "string"
},
"method": {
"type": "string"
},
"href": {
"type": "string"
},
"why": {
"type": "string"
}
},
"additionalProperties": true
},
"RateLimitInput": {
"type": "object",
"required": [],
"properties": {
"limit_type": {
"type": "string",
"enum": [
"rpm",
"tpm",
"credits"
]
},
"limit": {
"type": "number"
},
"remaining": {
"type": "number"
},
"reset_at": {
"type": "number",
"description": "Epoch milliseconds."
}
},
"additionalProperties": true
}
}
}
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/argus-town-event-validation"
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.