Properties
| Name | Type | Description |
|---|---|---|
| focus | string | |
| resolved_from | object | |
| project | object | |
| summary | string | |
| graph_stats | object | |
| next_actions | array | |
| relationship_groups | object | |
| migration_paths | array | |
| nodes | array | |
| edges | array | |
| evidence | object | |
| caveats | array | |
| confidence_reason | string | |
| source_fields | array | |
| last_verified_at | stringnull | |
| metadata | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/git-top/json-schema/git-top-graph-response-schema.json",
"title": "GraphResponse",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/git-top-graph-api-openapi.yml#/components/schemas/GraphResponse",
"type": "object",
"required": [
"nodes",
"edges",
"graph_stats",
"metadata"
],
"properties": {
"focus": {
"type": "string"
},
"resolved_from": {
"type": "object",
"additionalProperties": true
},
"project": {
"$ref": "#/$defs/GraphProjectContext"
},
"summary": {
"type": "string"
},
"graph_stats": {
"type": "object",
"additionalProperties": true
},
"next_actions": {
"type": "array",
"items": {
"$ref": "#/$defs/NextAction"
}
},
"relationship_groups": {
"type": "object",
"additionalProperties": true
},
"migration_paths": {
"type": "array",
"items": {
"$ref": "#/$defs/MigrationPath"
}
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/$defs/GraphNode"
}
},
"edges": {
"type": "array",
"items": {
"$ref": "#/$defs/GraphEdge"
}
},
"evidence": {
"$ref": "#/$defs/NormalizedEvidence"
},
"caveats": {
"type": "array",
"items": {
"type": "string"
}
},
"confidence_reason": {
"type": "string"
},
"source_fields": {
"type": "array",
"items": {
"type": "string"
}
},
"last_verified_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"metadata": {
"$ref": "#/$defs/Metadata"
}
},
"additionalProperties": true,
"$defs": {
"GraphEdge": {
"type": "object",
"required": [
"source",
"target",
"kind",
"weight"
],
"properties": {
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"alternative",
"related",
"category",
"deployment",
"use_case",
"dependency"
]
},
"reason": {
"type": "string"
},
"weight": {
"type": "number"
}
},
"additionalProperties": true
},
"GraphNode": {
"type": "object",
"required": [
"id",
"label",
"kind"
],
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"project",
"category",
"deployment",
"use_case",
"dependency"
]
},
"score": {
"type": "number"
},
"repo": {
"type": "string"
}
},
"additionalProperties": true
},
"GraphProjectContext": {
"type": "object",
"properties": {
"repo": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"maintainer": {
"type": "string"
},
"license": {
"type": [
"string",
"null"
]
},
"language": {
"type": [
"string",
"null"
]
},
"recent_activity": {
"type": "string"
}
},
"additionalProperties": true
},
"Metadata": {
"type": "object",
"description": "Common provenance envelope for agent-facing responses. Agents should require source=d1 for high-confidence production claims and disclose seed fallback.",
"properties": {
"source": {
"type": "string",
"enum": [
"d1",
"seed"
]
},
"reason": {
"type": "string"
},
"project_count": {
"type": "integer"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"snapshot_id": {
"type": "string",
"description": "Stable identity for the corpus snapshot used by this response."
},
"latest_synced_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"schema_version": {
"type": "string",
"enum": [
"git-top.knowledge.v1"
]
},
"loaded_project_limit": {
"type": "integer",
"description": "Maximum D1 knowledge or search-candidate rows loaded into the bounded ranking set when present."
},
"truncated": {
"type": "boolean",
"description": "Whether the D1-backed ranking or candidate set reached its limit and may omit additional matching rows."
},
"candidate_retrieval": {
"type": "string",
"enum": [
"d1_first"
],
"description": "Search-only marker indicating that deterministic filters and broad query matching ran in D1 before TypeScript ranking."
},
"candidate_count": {
"type": "integer",
"description": "Number of D1 search candidates passed to the authoritative TypeScript filter and ranking stage."
},
"candidate_limit": {
"type": "integer",
"description": "Maximum number of D1 search candidates passed to the ranking stage."
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fallback, count, freshness, or trust caveats that agents should account for before citing results."
}
}
},
"MigrationPath": {
"type": "object",
"description": "Heuristic migration decision aid. It is not a drop-in compatibility or production readiness guarantee.",
"required": [
"from",
"to",
"compatibility",
"estimated_cost",
"shared_signals",
"gaps",
"validation_steps",
"evidence"
],
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
},
"compatibility": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"unknown"
]
},
"estimated_cost": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"unknown"
]
},
"shared_signals": {
"type": "array",
"items": {
"type": "string"
}
},
"gaps": {
"type": "array",
"items": {
"type": "string"
}
},
"validation_steps": {
"type": "array",
"items": {
"type": "string"
}
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"NextAction": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"href": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"additionalProperties": true
},
"NormalizedEvidence": {
"type": "object",
"description": "Normalized evidence package for agent citation and caveat handling.",
"properties": {
"classification": {
"type": "object",
"additionalProperties": true
},
"quality_signal_confidence": {
"$ref": "#/$defs/QualitySignalConfidence"
},
"verification": {
"oneOf": [
{
"$ref": "#/$defs/VerificationPackage"
},
{
"type": "null"
}
]
},
"source_fields": {
"type": "array",
"items": {
"type": "string"
}
},
"caveats": {
"type": "array",
"items": {
"type": "string"
}
},
"confidence_reason": {
"type": "string"
},
"last_verified_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
},
"QualitySignalConfidence": {
"type": "object",
"description": "Completeness hints for GitHub-derived score inputs. Agents should avoid overclaiming partial or unknown signals.",
"properties": {
"stars_30d_delta": {
"type": "string",
"enum": [
"snapshot",
"estimated"
]
},
"stars_30d_window_days": {
"type": "integer"
},
"commits_30d": {
"type": "string",
"enum": [
"complete",
"partial",
"unknown"
]
},
"releases_180d": {
"type": "string",
"enum": [
"complete",
"partial",
"unknown"
]
},
"contributors_90d": {
"type": "string",
"enum": [
"complete",
"partial",
"unknown"
]
}
},
"additionalProperties": true
},
"VerificationPackage": {
"type": "object",
"description": "Structured verification coverage for project selection. It does not claim install, security, runtime, or MCP execution unless a signal is verified.",
"required": [
"schema_version",
"overall_status",
"observed_at",
"signals",
"coverage",
"next_steps"
],
"properties": {
"schema_version": {
"type": "string",
"const": "git-top.verification.v1"
},
"overall_status": {
"type": "string",
"enum": [
"complete",
"partial",
"unverified"
]
},
"observed_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"signals": {
"type": "object",
"required": [
"activity",
"license",
"documentation",
"runtime",
"install",
"security",
"mcp"
],
"properties": {
"activity": {
"$ref": "#/$defs/VerificationSignal"
},
"license": {
"$ref": "#/$defs/VerificationSignal"
},
"documentation": {
"$ref": "#/$defs/VerificationSignal"
},
"runtime": {
"$ref": "#/$defs/VerificationSignal"
},
"install": {
"$ref": "#/$defs/VerificationSignal"
},
"security": {
"$ref": "#/$defs/VerificationSignal"
},
"mcp": {
"$ref": "#/$defs/VerificationSignal"
}
},
"additionalProperties": false
},
"coverage": {
"type": "object",
"required": [
"observed",
"inferred",
"not_run",
"unknown"
],
"properties": {
"observed": {
"type": "integer",
"minimum": 0
},
"inferred": {
"type": "integer",
"minimum": 0
},
"not_run": {
"type": "integer",
"minimum": 0
},
"unknown": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"next_steps": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"VerificationSignal": {
"type": "object",
"description": "One project verification signal. observed and inferred are indexed evidence; not_run means the independent probe has not been executed.",
"required": [
"status",
"source",
"evidence"
],
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"observed",
"inferred",
"not_run",
"not_applicable",
"unknown"
]
},
"source": {
"type": "string",
"enum": [
"github_metadata",
"git_top_heuristic",
"git_top_runtime"
]
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
}
}
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/git-top-graph-response"
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.