Clarity · Schema

AdminBuildTableRequest

AICustomer ExperienceCXAgenticEnterprise

Properties

Name Type Description
original_query object
search_query object
original_search_query object
corrected_query object
translated_query object
custom_prompt_begin object
custom_prompt_end object
main_field object
additional_fields object
task object
is_question object
filters array
sorted_by array
deep_search object
calculate_nps object
calculate_percent_of_total object
question object
taxonomy_element_name object
sentiment object
description object
limit object
offset object
post_filtering object
chat_history array
trend_filters object
distribution_filters object
stacking_filters object
force_refresh boolean
use_external_urls object
rows array
columns array
values array
use_analyzers boolean
do_spellcheck boolean
do_translate boolean
do_filters_extraction boolean
do_intent_analysis boolean
min_score number
runtime_fields array
min_bucket_n object Drop buckets thinner than this. Hidden buckets are counted and reported in `warnings` rather than disappearing silently.
having object Boolean expression over named measures; buckets that fail it are dropped.
correlations array Pearson correlation between two named metrics, measured across the returned buckets.
totals boolean Add a grand-total row, computed at total grain. A rate is RECOMPUTED there, never averaged down the column — averaging three sources at 80% (n=10), 20% (n=1000) and 50% (n=20) gives 50%, and the answe
order_by object Sort buckets by a named measure or expression, and optionally cap them.
View JSON Schema on GitHub

JSON Schema

onclarity-com-admin-build-table-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/onclarity-com/json-schema/onclarity-com-admin-build-table-request-schema.json",
  "title": "AdminBuildTableRequest",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/onclarity-com-openapi.json#/components/schemas/AdminBuildTableRequest",
  "properties": {
    "original_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Original Query"
    },
    "search_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Search Query"
    },
    "original_search_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Original Search Query"
    },
    "corrected_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Corrected Query"
    },
    "translated_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Translated Query"
    },
    "custom_prompt_begin": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Custom Prompt Begin"
    },
    "custom_prompt_end": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Custom Prompt End"
    },
    "main_field": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Main Field",
      "default": "message_text"
    },
    "additional_fields": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Additional Fields",
      "default": []
    },
    "task": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Task",
      "default": "summarize"
    },
    "is_question": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Question",
      "default": false
    },
    "filters": {
      "items": {
        "$ref": "#/$defs/QueryFilter"
      },
      "type": "array",
      "title": "Filters"
    },
    "sorted_by": {
      "items": {
        "$ref": "#/$defs/QuerySort"
      },
      "type": "array",
      "title": "Sorted By",
      "default": []
    },
    "deep_search": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Deep Search",
      "default": false
    },
    "calculate_nps": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Calculate Nps",
      "default": true
    },
    "calculate_percent_of_total": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Calculate Percent Of Total",
      "default": true
    },
    "question": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Question"
    },
    "taxonomy_element_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Taxonomy Element Name"
    },
    "sentiment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sentiment"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "limit": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Limit",
      "default": 9999
    },
    "offset": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Offset",
      "default": 0
    },
    "post_filtering": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Post Filtering",
      "default": true
    },
    "chat_history": {
      "items": {
        "$ref": "#/$defs/ChatHistoryItem"
      },
      "type": "array",
      "title": "Chat History",
      "default": []
    },
    "trend_filters": {
      "anyOf": [
        {
          "$ref": "#/$defs/ExtraFilters"
        },
        {
          "type": "null"
        }
      ]
    },
    "distribution_filters": {
      "anyOf": [
        {
          "$ref": "#/$defs/ExtraFilters"
        },
        {
          "type": "null"
        }
      ]
    },
    "stacking_filters": {
      "anyOf": [
        {
          "$ref": "#/$defs/ExtraFilters"
        },
        {
          "type": "null"
        }
      ]
    },
    "force_refresh": {
      "type": "boolean",
      "title": "Force Refresh",
      "default": false
    },
    "use_external_urls": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Use External Urls",
      "default": false
    },
    "rows": {
      "items": {
        "$ref": "#/$defs/TableField"
      },
      "type": "array",
      "title": "Rows"
    },
    "columns": {
      "items": {
        "$ref": "#/$defs/TableField"
      },
      "type": "array",
      "title": "Columns"
    },
    "values": {
      "items": {
        "$ref": "#/$defs/TableField"
      },
      "type": "array",
      "title": "Values"
    },
    "use_analyzers": {
      "type": "boolean",
      "title": "Use Analyzers",
      "default": true
    },
    "do_spellcheck": {
      "type": "boolean",
      "title": "Do Spellcheck",
      "default": true
    },
    "do_translate": {
      "type": "boolean",
      "title": "Do Translate",
      "default": true
    },
    "do_filters_extraction": {
      "type": "boolean",
      "title": "Do Filters Extraction",
      "default": true
    },
    "do_intent_analysis": {
      "type": "boolean",
      "title": "Do Intent Analysis",
      "default": true
    },
    "min_score": {
      "type": "number",
      "title": "Min Score",
      "default": 1.0
    },
    "runtime_fields": {
      "items": {
        "$ref": "#/$defs/RuntimeField"
      },
      "type": "array",
      "title": "Runtime Fields"
    },
    "min_bucket_n": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Min Bucket N",
      "description": "Drop buckets thinner than this. Hidden buckets are counted and reported in `warnings` rather than disappearing silently."
    },
    "having": {
      "anyOf": [
        {
          "$ref": "#/$defs/TablePredicate"
        },
        {
          "type": "null"
        }
      ],
      "description": "Boolean expression over named measures; buckets that fail it are dropped."
    },
    "correlations": {
      "items": {
        "$ref": "#/$defs/MetricCorrelation"
      },
      "type": "array",
      "title": "Correlations",
      "description": "Pearson correlation between two named metrics, measured across the returned buckets."
    },
    "totals": {
      "type": "boolean",
      "title": "Totals",
      "description": "Add a grand-total row, computed at total grain. A rate is RECOMPUTED there, never averaged down the column — averaging three sources at 80% (n=10), 20% (n=1000) and 50% (n=20) gives 50%, and the answer is 23%.",
      "default": false
    },
    "order_by": {
      "anyOf": [
        {
          "$ref": "#/$defs/TableOrderBy"
        },
        {
          "type": "null"
        }
      ],
      "description": "Sort buckets by a named measure or expression, and optionally cap them."
    }
  },
  "type": "object",
  "required": [
    "filters",
    "rows",
    "columns",
    "values"
  ],
  "$defs": {
    "ChatHistoryItem": {
      "properties": {
        "role": {
          "type": "string",
          "pattern": "^(assistant|user)$",
          "title": "Role"
        },
        "content": {
          "type": "string",
          "title": "Content"
        }
      },
      "type": "object",
      "required": [
        "role",
        "content"
      ],
      "title": "ChatHistoryItem"
    },
    "ExtraFilters": {
      "properties": {
        "include_filters": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Include Filters"
        },
        "exclude_filters": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Exclude Filters"
        },
        "size": {
          "type": "integer",
          "title": "Size",
          "default": 10240
        }
      },
      "type": "object",
      "title": "ExtraFilters"
    },
    "MetricCorrelation": {
      "properties": {
        "as": {
          "type": "string",
          "title": "As"
        },
        "x": {
          "type": "string",
          "title": "X"
        },
        "y": {
          "type": "string",
          "title": "Y"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "as",
        "x",
        "y"
      ],
      "title": "MetricCorrelation",
      "description": "Ask how two named metrics move together across the table's buckets.\n\nA property of the result set, not of a cell — one number for the whole\ntable, which is why it is requested beside `values` rather than inside it."
    },
    "MetricFormat": {
      "properties": {
        "unit": {
          "type": "string",
          "enum": [
            "count",
            "percent",
            "ratio",
            "score",
            "currency",
            "duration"
          ],
          "title": "Unit",
          "default": "count"
        },
        "decimals": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Decimals"
        },
        "scale": {
          "anyOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Scale"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "title": "MetricFormat",
      "description": "How a derived number should be read (RFC P0-7).\n\nCarried through to the response so every surface — table, chart, export —\nrenders the same value the same way, and so a score with a scale can't be\nmistaken for a percentage again (§2.4)."
    },
    "MetricGuards": {
      "properties": {
        "min_denominator": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min Denominator",
          "description": "Below this denominator the ratio is undefined rather than small; the value becomes null and renders as '—'."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "title": "MetricGuards",
      "description": "Suppression rules for a single derived value (RFC P0-6)."
    },
    "MetricScope": {
      "properties": {
        "narrow": {
          "items": {
            "$ref": "#/$defs/QueryFilter"
          },
          "type": "array",
          "title": "Narrow"
        },
        "shift": {
          "anyOf": [
            {
              "$ref": "#/$defs/ShiftTransform"
            },
            {
              "type": "null"
            }
          ]
        },
        "drop": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Drop",
          "description": "Ignore the ambient filters on these keys."
        },
        "keep_only": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Keep Only",
          "description": "Reset every ambient filter except these keys. An EMPTY list keeps none of them, which is the whole project — the denominator of a share of the total. Absent means no such transform at all; the two are different populations and the default cannot be `[]` or they collapse into one."
        },
        "replace": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "title": "Replace",
          "description": "Swap a dimension's value — compare against a named peer."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "title": "MetricScope",
      "description": "The Δ applied to the ambient filter set before a measure is aggregated.\n\nFive transforms, in two families.\n\nThe narrowing pair is cheap — they compile to a `filter` sub-agg inside the\nexisting bucket tree, so a comparison costs one round trip and no client-side\nmath:\n\n* `narrow` adds predicates, always *intersecting* the page filters.\n* `shift` replaces the measure's date range with a calendar window.\n\nThe widening three — `drop`, `keep_only`, `replace` — escape the bucket, so\nthey are aggregated in a top-level `global` sibling and composed back onto\neach cell by the axes the widened population is still pinned by. They\ncompile; only two combinations are refused, and `_widening_errors` says which\nand why. Because their operands live in a parallel subtree, nothing that\ndepends on one can be a `bucket_script` — see `MetricPlan.python_expressions`\n— or decide the result set."
    },
    "QueryFilter": {
      "properties": {
        "type": {
          "anyOf": [
            {
              "type": "string",
              "const": "exists"
            },
            {
              "type": "string",
              "const": "list"
            },
            {
              "type": "string",
              "const": "nested"
            },
            {
              "type": "string",
              "const": "range"
            },
            {
              "type": "string",
              "const": "text"
            }
          ],
          "title": "Type"
        },
        "key": {
          "type": "string",
          "title": "Key"
        },
        "values": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Values"
        },
        "min": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min"
        },
        "max": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max"
        },
        "operator": {
          "anyOf": [
            {
              "type": "string",
              "const": "eq"
            },
            {
              "type": "string",
              "const": "neq"
            },
            {
              "type": "string",
              "const": "contains"
            }
          ],
          "title": "Operator",
          "default": "eq"
        },
        "generated": {
          "type": "boolean",
          "title": "Generated",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "type",
        "key"
      ],
      "title": "QueryFilter"
    },
    "QuerySort": {
      "properties": {
        "key": {
          "type": "string",
          "title": "Key"
        },
        "order": {
          "anyOf": [
            {
              "type": "string",
              "const": "asc"
            },
            {
              "type": "string",
              "const": "desc"
            }
          ],
          "title": "Order",
          "default": "asc"
        }
      },
      "type": "object",
      "required": [
        "key"
      ],
      "title": "QuerySort"
    },
    "RuntimeField": {
      "properties": {
        "as": {
          "type": "string",
          "title": "As"
        },
        "type": {
          "type": "string",
          "enum": [
            "double",
            "long",
            "boolean"
          ],
          "title": "Type",
          "default": "double"
        },
        "expr": {
          "type": "string",
          "title": "Expr"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "as",
        "expr"
      ],
      "title": "RuntimeField",
      "description": "A per-document derived field (RFC stage 1).\n\nArithmetic and comparisons over fields on the same row — `reach = followers +\nlikes + comments`, `likes < comments`. Evaluated at query time, so it is\nretroactive over all history the moment it is declared: no operator, no\ninference, no reinference backfill.\n\nUsable anywhere a stored field is: as a measure, a group-by, a `weight`, or\na predicate inside `scope.narrow`."
    },
    "ShiftTransform": {
      "properties": {
        "key": {
          "type": "string",
          "title": "Key",
          "default": "ds"
        },
        "unit": {
          "type": "string",
          "enum": [
            "day",
            "week",
            "month",
            "quarter",
            "year"
          ],
          "title": "Unit",
          "default": "week"
        },
        "offset": {
          "type": "integer",
          "title": "Offset",
          "default": 0
        },
        "count": {
          "type": "integer",
          "minimum": 1.0,
          "title": "Count",
          "description": "Trailing length in units — 4 weeks, 3 months, …",
          "default": 1
        },
        "align": {
          "type": "string",
          "enum": [
            "complete",
            "to_date"
          ],
          "title": "Align",
          "default": "complete"
        },
        "week_start": {
          "type": "string",
          "enum": [
            "monday",
            "sunday"
          ],
          "title": "Week Start",
          "default": "monday"
        },
        "anchor": {
          "type": "string",
          "enum": [
            "today",
            "dashboard_end"
          ],
          "title": "Anchor",
          "default": "today"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "title": "ShiftTransform",
      "description": "Move a measure's date range by whole calendar units (RFC §6.13).\n\nThis is what makes week-over-week possible. Today's only comparison shifts\nthe range back by its own length in days, so a 90-day dashboard gets a\n90-day baseline and month-over-month compares 31 days to 30."
    },
    "TableField": {
      "properties": {
        "key": {
          "type": "string",
          "title": "Key",
          "default": ""
        },
        "order": {
          "anyOf": [
            {
              "type": "string",
              "const": "asc"
            },
            {
              "type": "string",
              "const": "desc"
            },
            {
              "type": "null"
            }
          ],
          "title": "Order"
        },
        "operation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Operation"
        },
        "n": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "N"
        },
        "weight": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Weight"
        },
        "percentile": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 100.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Percentile",
          "description": "Which percentile to return for operation = 'percentile'. Defaults to 95."
        },
        "custom_prompt_begin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Custom Prompt Begin"
        },
        "custom_prompt_end": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Custom Prompt End"
        },
        "kind": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "expression",
                "rescope",
                "window"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Kind"
        },
        "as": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "As"
        },
        "scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/MetricScope"
            },
            {
              "type": "null"
            }
          ]
        },
        "expr": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Expr"
        },
        "of": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Of"
        },
        "window": {
          "anyOf": [
            {
              "$ref": "#/$defs/WindowTransform"
            },
            {
              "type": "null"
            }
          ]
        },
        "format": {
          "anyOf": [
            {
              "$ref": "#/$defs/MetricFormat"
            },
            {
              "type": "null"
            }
          ]
        },
        "guards": {
          "anyOf": [
            {
              "$ref": "#/$defs/MetricGuards"
            },
            {
              "type": "null"
            }
          ]
        },
        "drill": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "numerator",
                "denominator",
                "none"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Drill"
        },
        "include_filters": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Include Filters"
        },
        "exclude_filters": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Exclude Filters"
        },
        "size": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 100000.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Size",
          "description": "Bucket count for this grouping. Capped at 100000."
        },
        "interval": {
          "anyOf": [
            {
              "type": "string",
              "const": "day"
            },
            {
              "type": "string",
              "const": "week"
            },
            {
              "type": "string",
              "const": "month"
            },
            {
              "type": "null"
            }
          ],
          "title": "Interval"
        }
      },
      "type": "object",
      "title": "TableField"
    },
    "TableOrderBy": {
      "properties": {
        "value": {
          "type": "string",
          "title": "Value"
        },
        "direction": {
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ],
          "title": "Direction",
          "default": "desc"
        },
        "limit": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 100000.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Limit"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value"
      ],
      "title": "TableOrderBy"
    },
    "TablePredicate": {
      "properties": {
        "expr": {
          "type": "string",
          "title": "Expr"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "expr"
      ],
      "title": "TablePredicate"
    },
    "WindowTransform": {
      "properties": {
        "op": {
          "type": "string",
          "enum": [
            "moving_avg",
            "cumulative_sum",
            "rank"
          ],
          "title": "Op"
        },
        "periods": {
          "type": "integer",
          "maximum": 365.0,
          "minimum": 2.0,
          "title": "Periods",
          "description": "Window length in buckets, for moving_avg.",
          "default": 4
        },
        "direction": {
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ],
          "title": "Direction",
          "default": "desc"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "op"
      ],
      "title": "WindowTransform",
      "description": "A derived series over the buckets a metric already produced.\n\nThese are the three result-set operations the RFC lists and the builder could\nnot express: a moving average, a running total, and a rank.\n\nComputed after the response, over the buckets that came back — and that is\nthe definition rather than an approximation. `order_by`'s limit and\n`min_bucket_n` have already decided which buckets there are; a moving average\nis of the series on screen, a rank is among the rows shown. This is the one\nplace where \"the page\" and \"the result set\" are the same thing, which is why\n`having` and `order_by` are still refused a page-level answer (see\n`_plan_result_set_ops`) and these are not."
    }
  }
}

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/onclarity-com-admin-build-table-request"
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.