Git.Top Recommend API
The Recommend API from Git.Top — 1 operation(s) for recommend.
Operations 2
POST
/api/recommend
Recommend projects from a structured JSON body with optional nested constraints
#
The Recommend API from Git.Top — 1 operation(s) for recommend.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/git-top:git-top-recommend-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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.
openapi: 3.2.0
info:
title: Git.Top Agent Recommend API
version: 0.1.0
description: Agent-native GitHub project knowledge API for search, project lookup, alternatives, comparison, graph reasoning, quality, and schema discovery. High-confidence clients should inspect metadata.source, metadata.reason, trust fields, classification evidence, quality_signal_confidence, verification signals, and migration validation steps, and use require_d1=true when seed fallback should fail closed.
servers:
- url: https://git.top
description: Production
- url: http://localhost:8787
description: Local Worker
tags:
- name: Recommend
paths:
/api/recommend:
get:
summary: Recommend projects for an agent use case and constraints
parameters:
- name: use_case
in: query
required: false
description: Use case text
schema:
type: string
- name: deployment
in: query
required: false
description: Deployment target
schema:
type: string
- name: category
in: query
required: false
description: Project category
schema:
type: string
- name: license
in: query
required: false
description: License SPDX id or license text
schema:
type: string
- name: difficulty
in: query
required: false
description: Difficulty level
schema:
type: string
- name: language
in: query
required: false
description: Primary language
schema:
type: string
- name: cloudflare_ready
in: query
required: false
description: Boolean Cloudflare readiness filter
schema:
type: string
- name: limit
in: query
required: false
description: Maximum result count
schema:
type: string
- name: require_d1
in: query
required: false
description: Fail closed unless D1-backed data is available
schema:
type: string
responses:
'200':
description: Recommendations with fit profiles, adoption plans, risk flags, reasons, and tradeoffs
content:
application/json:
schema:
$ref: '#/components/schemas/RecommendationResponse'
tags:
- Recommend
operationId: getApiRecommend
x-operation-id-source: derived
post:
summary: Recommend projects from a structured JSON body with optional nested constraints
parameters:
- name: require_d1
in: query
required: false
description: Fail closed unless D1-backed data is available
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RecommendationRequest'
responses:
'200':
description: Recommendations with fit profiles, adoption plans, risk flags, constraints, ranking signals, and tradeoffs
content:
application/json:
schema:
$ref: '#/components/schemas/RecommendationResponse'
example:
query:
use_case: build Cloudflare-ready agent workflows
deployment: cloudflare
category: agent_framework
limit: 3
recommendations:
- project_id: cloudflare/agents
repo: cloudflare/agents
name: agents
github_url: https://github.com/cloudflare/agents
language: TypeScript
license: MIT
project_kind: project
category:
- agent_framework
description: Build and deploy AI agents on Cloudflare Workers.
deployments:
- cloudflare
- serverless
difficulty: intermediate
cloudflare_ready: true
git_top_score: 86
quality_score: 82
agent_score: 90
verification:
schema_version: git-top.verification.v1
overall_status: partial
observed_at: '2026-07-04T00:00:00.000Z'
signals:
activity:
status: observed
source: github_metadata
evidence:
- project.pushed_at
- metrics.recent_push_days
license:
status: observed
source: github_metadata
evidence:
- project.license
documentation:
status: observed
source: github_metadata
evidence:
- project.description
runtime:
status: inferred
source: git_top_heuristic
evidence:
- agent_card.deployment
- agent_card.cloudflare_ready
install:
status: not_run
source: git_top_runtime
evidence:
- installation/build probe is not enabled
security:
status: not_run
source: git_top_runtime
evidence:
- dependency/security scan is not enabled
mcp:
status: not_applicable
source: git_top_runtime
evidence:
- project is not classified as mcp_server
coverage:
observed: 3
inferred: 1
not_run: 2
unknown: 0
next_steps:
- Run an installation/build probe before production adoption.
- Run a dependency and security scan before treating the score as a trust claim.
quality_signal_confidence:
stars_30d_delta: snapshot
commits_30d: complete
releases_180d: partial
contributors_90d: complete
evidence:
source_fields:
- recommendation.ranking_signals
- agent_card.classification
- metrics
- verification.signals
caveats: []
confidence_reason: High confidence because deployment and category constraints match.
verification:
schema_version: git-top.verification.v1
overall_status: partial
observed_at: '2026-07-04T00:00:00.000Z'
signals:
activity:
status: observed
source: github_metadata
evidence:
- project.pushed_at
- metrics.recent_push_days
license:
status: observed
source: github_metadata
evidence:
- project.license
documentation:
status: observed
source: github_metadata
evidence:
- project.description
runtime:
status: inferred
source: git_top_heuristic
evidence:
- agent_card.deployment
- agent_card.cloudflare_ready
install:
status: not_run
source: git_top_runtime
evidence:
- installation/build probe is not enabled
security:
status: not_run
source: git_top_runtime
evidence:
- dependency/security scan is not enabled
mcp:
status: not_applicable
source: git_top_runtime
evidence:
- project is not classified as mcp_server
coverage:
observed: 3
inferred: 1
not_run: 2
unknown: 0
next_steps:
- Run an installation/build probe before production adoption.
- Run a dependency and security scan before treating the score as a trust claim.
last_verified_at: '2026-07-04T00:00:00.000Z'
caveats: []
confidence_reason: High confidence because deployment and category constraints match.
source_fields:
- recommendation.ranking_signals
- agent_card.classification
- metrics
- verification.signals
last_verified_at: '2026-07-04T00:00:00.000Z'
decision_summary: Best first pick for Cloudflare Workers-native agent workflows.
reasons:
- Matches deployment=cloudflare
- Agent framework category match
tradeoffs:
- Less suitable for Python-only local stacks
fit_profile:
primary_fit: Cloudflare-native agent runtime
adoption_plan:
- Inspect project
- Check score
- Compare alternatives
risk_flags: []
matched_constraints:
deployment: cloudflare
category: agent_framework
unmatched_constraints: []
ranking_signals:
use_case_match: 0.92
deployment_fit: 1
confidence: high
next_actions:
- label: Inspect graph
href: /api/graph/cloudflare/agents
kind: graph
metadata:
source: d1
reason: d1_query
project_count: 500
generated_at: '2026-07-04T00:00:00.000Z'
snapshot_id: d1:500:2026-07-04T00:00:00.000Z
latest_synced_at: '2026-07-04T00:00:00.000Z'
schema_version: git-top.knowledge.v1
'400':
description: Invalid recommendation request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
tags:
- Recommend
operationId: postApiRecommend
x-operation-id-source: derived
components:
schemas:
NormalizedEvidence:
type: object
description: Normalized evidence package for agent citation and caveat handling.
properties:
classification:
type: object
additionalProperties: true
quality_signal_confidence:
$ref: '#/components/schemas/QualitySignalConfidence'
verification:
oneOf:
- $ref: '#/components/schemas/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
NextAction:
type: object
properties:
label:
type: string
href:
type: string
kind:
type: string
additionalProperties: true
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
ProjectSummary:
type: object
required:
- tl_dr
- purpose
- inputs
- outputs
- good_for
- not_good_for
- deployment
- alternatives
properties:
tl_dr:
type: string
description: One-sentence project overview for agents.
purpose:
type: string
description: Longer agent-facing project purpose.
install:
type:
- string
- 'null'
description: Conservative install or setup hint when Git.Top can infer one.
inputs:
type: array
items:
type: string
outputs:
type: array
items:
type: string
good_for:
type: array
items:
type: string
not_good_for:
type: array
items:
type: string
deployment:
type: array
items:
type: string
alternatives:
type: array
items:
type: object
required:
- repo
- reason
properties:
repo:
type: string
reason:
type: string
Recommendation:
allOf:
- $ref: '#/components/schemas/ProjectCard'
- type: object
properties:
decision_summary:
type: string
reasons:
type: array
items:
type: string
tradeoffs:
type: array
items:
type: string
fit_profile:
type: object
additionalProperties: true
adoption_plan:
type: array
items:
type: string
risk_flags:
type: array
items:
type: string
matched_constraints:
type: object
additionalProperties: true
unmatched_constraints:
type: object
additionalProperties: true
ranking_signals:
type: object
additionalProperties:
type: number
confidence:
type: string
enum:
- high
- medium
- low
confidence_reason:
type: string
evidence:
allOf:
- $ref: '#/components/schemas/NormalizedEvidence'
- type: object
properties:
recommendation_reasons:
type: array
items:
type: string
ranking_signals:
type: object
additionalProperties:
type: number
matched_constraints:
type: object
additionalProperties: true
unmatched_constraints:
type: object
additionalProperties: true
additionalProperties: true
caveats:
type: array
items:
type: string
source_fields:
type: array
items:
type: string
last_verified_at:
type:
- string
- 'null'
format: date-time
next_actions:
type: array
items:
$ref: '#/components/schemas/NextAction'
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: '#/components/schemas/VerificationSignal'
license:
$ref: '#/components/schemas/VerificationSignal'
documentation:
$ref: '#/components/schemas/VerificationSignal'
runtime:
$ref: '#/components/schemas/VerificationSignal'
install:
$ref: '#/components/schemas/VerificationSignal'
security:
$ref: '#/components/schemas/VerificationSignal'
mcp:
$ref: '#/components/schemas/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
RecommendationRequest:
type: object
properties:
use_case:
type: string
useCase:
type: string
deployment:
type: string
category:
type: string
license:
type: string
difficulty:
type: string
language:
type: string
cloudflare_ready:
type: boolean
limit:
type: integer
constraints:
type: object
properties:
deployment:
type: string
category:
type: string
license:
type: string
difficulty:
type: string
language:
type: string
cloudflare_ready:
type: boolean
ProjectCard:
type: object
description: Compact project card used in search, recommendations, comparison, alternatives, and related project lists.
required:
- project_id
- repo
- name
properties:
project_id:
type: string
repo:
type: string
name:
type: string
github_url:
type: string
homepage_url:
type:
- string
- 'null'
language:
type:
- string
- 'null'
license:
type:
- string
- 'null'
project_kind:
type: string
enum:
- project
- collection
collection_metadata:
type: object
additionalProperties: true
category:
type: array
items:
type: string
tags:
type: array
items:
type: string
description:
type: string
overview:
type: string
deployments:
type: array
items:
type: string
difficulty:
type: string
cloudflare_ready:
type: boolean
git_top_score:
type: number
quality_score:
type: number
agent_score:
type: number
score:
type: number
classification:
type: object
additionalProperties: true
quality_signal_confidence:
$ref: '#/components/schemas/QualitySignalConfidence'
verification:
$ref: '#/components/schemas/VerificationPackage'
summary:
$ref: '#/components/schemas/ProjectSummary'
evidence:
$ref: '#/components/schemas/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
additionalProperties: true
ErrorResponse:
type: object
description: Common API error envelope.
properties:
error:
type: string
code:
type: string
description: Stable machine-readable error code when available, such as d1_required.
message:
type: string
metadata:
$ref: '#/components/schemas/Metadata'
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
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.
RecommendationResponse:
type: object
required:
- query
- recommendations
- metadata
properties:
query:
type: object
additionalProperties: true
recommendations:
type: array
items:
$ref: '#/components/schemas/Recommendation'
metadata:
$ref: '#/components/schemas/Metadata'
additionalProperties: true
securitySchemes:
syncSecret:
type: http
scheme: bearer
description: Admin endpoints require the SYNC_SECRET bearer token.
feedbackSecret:
type: http
scheme: bearer
description: Optional FEEDBACK_SECRET. Without it, proposals are validated and fingerprinted but not persisted.