Skip to main content
Glama
openapi.json84.7 kB
{ "openapi": "3.1.0", "info": { "title": "kodit API", "description": "\nThis is the REST API for the Kodit server. Please refer to the\n[Kodit documentation](https://docs.helix.ml/kodit/) for more information.\n ", "version": "0.5.16" }, "paths": { "/healthz": { "get": { "summary": "Healthz", "description": "Return a health check for the kodit API.", "operationId": "healthz_healthz_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "500": { "description": "Internal server error" } } } }, "/api/v1/queue": { "get": { "tags": [ "queue" ], "summary": "List Queue Tasks", "description": "List all tasks in the queue.\n\nOptionally filter by task type.", "operationId": "list_queue_tasks_api_v1_queue_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "task_type", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/TaskOperation" }, { "type": "null" } ], "title": "Task Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" } } } }, "/api/v1/queue/{task_id}": { "get": { "tags": [ "queue" ], "summary": "Get Queue Task", "description": "Get details of a specific task in the queue.", "operationId": "get_queue_task_api_v1_queue__task_id__get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "task_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Task Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Task not found" } } } }, "/api/v1/search": { "post": { "tags": [ "search" ], "summary": "Search Snippets", "description": "Search code snippets with filters matching MCP tool.", "operationId": "search_snippets_api_v1_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchResponse" } } } }, "500": { "description": "Internal server error" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/repositories/{repo_id}/commits": { "get": { "tags": [ "commits" ], "summary": "List repository commits", "description": "List all commits for a repository.", "operationId": "list_repository_commits_api_v1_repositories__repo_id__commits_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number, starting from 1", "default": 1, "title": "Page" }, "description": "Page number, starting from 1" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Items per page", "default": 20, "title": "Page Size" }, "description": "Items per page" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}": { "get": { "tags": [ "commits" ], "summary": "Get repository commit", "description": "Get a specific commit for a repository.", "operationId": "get_repository_commit_api_v1_repositories__repo_id__commits__commit_sha__get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or commit not found" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}/files": { "get": { "tags": [ "commits" ], "summary": "List commit files", "description": "List all files in a specific commit.", "operationId": "list_commit_files_api_v1_repositories__repo_id__commits__commit_sha__files_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number, starting from 1", "default": 1, "title": "Page" }, "description": "Page number, starting from 1" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Items per page", "default": 20, "title": "Page Size" }, "description": "Items per page" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}/files/{blob_sha}": { "get": { "tags": [ "commits" ], "summary": "Get commit file", "description": "Get a specific file from a commit.", "operationId": "get_commit_file_api_v1_repositories__repo_id__commits__commit_sha__files__blob_sha__get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } }, { "name": "blob_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Blob Sha" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository, commit or file not found" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}/snippets": { "get": { "tags": [ "commits" ], "summary": "List commit snippets", "description": "List all snippets in a specific commit.", "operationId": "list_commit_snippets_api_v1_repositories__repo_id__commits__commit_sha__snippets_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or commit not found" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}/embeddings": { "get": { "tags": [ "commits" ], "summary": "List commit embeddings", "description": "List all embeddings for snippets in a specific commit.", "operationId": "list_commit_embeddings_api_v1_repositories__repo_id__commits__commit_sha__embeddings_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } }, { "name": "full", "in": "query", "required": false, "schema": { "type": "boolean", "description": "If true, return full vectors. If false, return first 5 values.", "default": false, "title": "Full" }, "description": "If true, return full vectors. If false, return first 5 values." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmbeddingListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or commit not found" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}/enrichments": { "get": { "tags": [ "commits" ], "summary": "List commit enrichments", "description": "List all enrichments for a specific commit.", "operationId": "list_commit_enrichments_api_v1_repositories__repo_id__commits__commit_sha__enrichments_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } }, { "name": "enrichment_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Enrichment Type" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number, starting from 1", "default": 1, "title": "Page" }, "description": "Page number, starting from 1" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Items per page", "default": 20, "title": "Page Size" }, "description": "Items per page" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or commit not found" } } }, "delete": { "tags": [ "commits" ], "summary": "Delete all commit enrichments", "description": "Delete all enrichments for a specific commit.", "operationId": "delete_all_commit_enrichments_api_v1_repositories__repo_id__commits__commit_sha__enrichments_delete", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } } ], "responses": { "204": { "description": "Successful Response" }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or commit not found" } } } }, "/api/v1/repositories/{repo_id}/commits/{commit_sha}/enrichments/{enrichment_id}": { "delete": { "tags": [ "commits" ], "summary": "Delete commit enrichment", "description": "Delete a specific enrichment for a commit.", "operationId": "delete_commit_enrichment_api_v1_repositories__repo_id__commits__commit_sha__enrichments__enrichment_id__delete", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "commit_sha", "in": "path", "required": true, "schema": { "type": "string", "title": "Commit Sha" } }, { "name": "enrichment_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Enrichment Id" } } ], "responses": { "204": { "description": "Successful Response" }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository, commit, or enrichment not found" } } } }, "/api/v1/repositories": { "get": { "tags": [ "repositories" ], "summary": "List repositories", "description": "List all cloned repositories.", "operationId": "list_repositories_api_v1_repositories_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" } }, "security": [ { "Header (X-API-KEY)": [] } ] }, "post": { "tags": [ "repositories" ], "summary": "Create or reindex repository", "description": "Create a new repository or trigger re-indexing if it exists.", "operationId": "create_repository_api_v1_repositories_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" } }, "security": [ { "Header (X-API-KEY)": [] } ] } }, "/api/v1/repositories/{repo_id}": { "get": { "tags": [ "repositories" ], "summary": "Get repository", "description": "Get repository details including branches and recent commits.", "operationId": "get_repository_api_v1_repositories__repo_id__get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryDetailsResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository not found" } } }, "delete": { "tags": [ "repositories" ], "summary": "Delete repository", "description": "Delete a repository and all its associated data.", "operationId": "delete_repository_api_v1_repositories__repo_id__delete", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } } ], "responses": { "204": { "description": "Successful Response" }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository not found" } } } }, "/api/v1/repositories/{repo_id}/status": { "get": { "tags": [ "repositories" ], "summary": "Get Index Status", "description": "Get the status of tasks for an index.", "operationId": "get_index_status_api_v1_repositories__repo_id__status_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Repo Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskStatusListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or index not found" } } } }, "/api/v1/repositories/{repo_id}/status/summary": { "get": { "tags": [ "repositories" ], "summary": "Get repository status summary", "description": "Get a summary of the repository indexing status.", "operationId": "get_status_summary_api_v1_repositories__repo_id__status_summary_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Repo Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryStatusSummaryResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository not found" } } } }, "/api/v1/repositories/{repo_id}/tags": { "get": { "tags": [ "repositories" ], "summary": "List repository tags", "description": "List all tags for a repository.", "operationId": "list_repository_tags_api_v1_repositories__repo_id__tags_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository not found" } } } }, "/api/v1/repositories/{repo_id}/tags/{tag_id}": { "get": { "tags": [ "repositories" ], "summary": "Get repository tag", "description": "Get a specific tag for a repository.", "operationId": "get_repository_tag_api_v1_repositories__repo_id__tags__tag_id__get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "tag_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Tag Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository or tag not found" } } } }, "/api/v1/repositories/{repo_id}/enrichments": { "get": { "tags": [ "repositories" ], "summary": "List latest repository enrichments", "description": "List the most recent enrichments for a repository.\n\nUses the repository's tracking_config to find the most recent enriched commit.\n\nQuery parameters:\n- enrichment_type: Optional filter for specific enrichment type.\n- max_commits_to_check: Number of recent commits to search (default: 100).\n- limit: Maximum number of enrichments to return. Defaults to 10.", "operationId": "list_repository_enrichments_api_v1_repositories__repo_id__enrichments_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "repo_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Repo Id" } }, { "name": "enrichment_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Enrichment Type" } }, { "name": "max_commits_to_check", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of recent commits to search for recent enriched commits", "default": 100, "title": "Max Commits To Check" }, "description": "Number of recent commits to search for recent enriched commits" }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number, starting from 1", "default": 1, "title": "Page" }, "description": "Page number, starting from 1" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Items per page", "default": 20, "title": "Page Size" }, "description": "Items per page" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Repository not found" } } } }, "/api/v1/enrichments": { "get": { "tags": [ "enrichments" ], "summary": "List enrichments", "description": "List all enrichments with optional filtering.", "operationId": "list_enrichments_api_v1_enrichments_get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "enrichment_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by enrichment type", "title": "Enrichment Type" }, "description": "Filter by enrichment type" }, { "name": "enrichment_subtype", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by enrichment subtype", "title": "Enrichment Subtype" }, "description": "Filter by enrichment subtype" }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number, starting from 1", "default": 1, "title": "Page" }, "description": "Page number, starting from 1" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Items per page", "default": 20, "title": "Page Size" }, "description": "Items per page" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentListResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" } } } }, "/api/v1/enrichments/{enrichment_id}": { "get": { "tags": [ "enrichments" ], "summary": "Get enrichment", "description": "Get a specific enrichment by ID.", "operationId": "get_enrichment_api_v1_enrichments__enrichment_id__get", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "enrichment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Enrichment Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Enrichment not found" } } }, "patch": { "tags": [ "enrichments" ], "summary": "Update enrichment", "description": "Update an enrichment's content.", "operationId": "update_enrichment_api_v1_enrichments__enrichment_id__patch", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "enrichment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Enrichment Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentUpdateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichmentResponse" } } } }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Enrichment not found" } } }, "delete": { "tags": [ "enrichments" ], "summary": "Delete enrichment", "description": "Delete an enrichment.", "operationId": "delete_enrichment_api_v1_enrichments__enrichment_id__delete", "security": [ { "Header (X-API-KEY)": [] } ], "parameters": [ { "name": "enrichment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Enrichment Id" } } ], "responses": { "204": { "description": "Successful Response" }, "500": { "description": "Internal server error" }, "401": { "description": "Unauthorized" }, "422": { "description": "Invalid request" }, "404": { "description": "Enrichment not found" } } } } }, "components": { "schemas": { "CommitAttributes": { "properties": { "commit_sha": { "type": "string", "title": "Commit Sha" }, "date": { "type": "string", "format": "date-time", "title": "Date" }, "message": { "type": "string", "title": "Message" }, "parent_commit_sha": { "type": "string", "title": "Parent Commit Sha" }, "author": { "type": "string", "title": "Author" } }, "type": "object", "required": [ "commit_sha", "date", "message", "parent_commit_sha", "author" ], "title": "CommitAttributes", "description": "Commit attributes following JSON-API spec." }, "CommitData": { "properties": { "type": { "type": "string", "title": "Type", "default": "commit" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/CommitAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "CommitData", "description": "Commit data following JSON-API spec." }, "CommitListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/CommitData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "CommitListResponse", "description": "Commit list response following JSON-API spec." }, "CommitResponse": { "properties": { "data": { "$ref": "#/components/schemas/CommitData" } }, "type": "object", "required": [ "data" ], "title": "CommitResponse", "description": "Single commit response following JSON-API spec." }, "EmbeddingAttributes": { "properties": { "snippet_sha": { "type": "string", "title": "Snippet Sha" }, "embedding_type": { "type": "string", "title": "Embedding Type" }, "embedding": { "items": { "type": "number" }, "type": "array", "title": "Embedding" } }, "type": "object", "required": [ "snippet_sha", "embedding_type", "embedding" ], "title": "EmbeddingAttributes", "description": "Embedding attributes following JSON-API spec." }, "EmbeddingData": { "properties": { "type": { "type": "string", "title": "Type", "default": "embedding" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/EmbeddingAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "EmbeddingData", "description": "Embedding data following JSON-API spec." }, "EmbeddingListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/EmbeddingData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "EmbeddingListResponse", "description": "Embedding list response following JSON-API spec." }, "EnrichmentAssociationData": { "properties": { "id": { "type": "string", "title": "Id" }, "type": { "type": "string", "title": "Type" } }, "type": "object", "required": [ "id", "type" ], "title": "EnrichmentAssociationData", "description": "Enrichment association data for JSON-API spec." }, "EnrichmentAttributes": { "properties": { "type": { "type": "string", "title": "Type" }, "subtype": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Subtype" }, "content": { "type": "string", "title": "Content" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "type", "subtype", "content", "created_at", "updated_at" ], "title": "EnrichmentAttributes", "description": "Enrichment attributes following JSON-API spec." }, "EnrichmentData": { "properties": { "type": { "type": "string", "title": "Type", "default": "enrichment" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/EnrichmentAttributes" }, "relationships": { "anyOf": [ { "$ref": "#/components/schemas/EnrichmentRelationships" }, { "type": "null" } ] }, "links": { "anyOf": [ { "$ref": "#/components/schemas/EnrichmentLinks" }, { "type": "null" } ] } }, "type": "object", "required": [ "id", "attributes" ], "title": "EnrichmentData", "description": "Enrichment data following JSON-API spec." }, "EnrichmentLinks": { "properties": { "self": { "type": "string", "title": "Self" } }, "type": "object", "required": [ "self" ], "title": "EnrichmentLinks", "description": "Links following JSON-API spec." }, "EnrichmentListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/EnrichmentData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "EnrichmentListResponse", "description": "Enrichment list response following JSON-API spec." }, "EnrichmentRelationships": { "properties": { "associations": { "anyOf": [ { "items": { "$ref": "#/components/schemas/EnrichmentAssociationData" }, "type": "array" }, { "type": "null" } ], "title": "Associations" }, "commit": { "anyOf": [ { "$ref": "#/components/schemas/Relationship" }, { "type": "null" } ] } }, "type": "object", "title": "EnrichmentRelationships", "description": "Enrichment relationships for JSON-API spec." }, "EnrichmentResponse": { "properties": { "data": { "$ref": "#/components/schemas/EnrichmentData" } }, "type": "object", "required": [ "data" ], "title": "EnrichmentResponse", "description": "Single enrichment response following JSON-API spec." }, "EnrichmentSchema": { "properties": { "type": { "type": "string", "title": "Type" }, "content": { "type": "string", "title": "Content" } }, "type": "object", "required": [ "type", "content" ], "title": "EnrichmentSchema", "description": "Enrichment schema following JSON-API spec." }, "EnrichmentUpdateAttributes": { "properties": { "content": { "type": "string", "title": "Content" } }, "type": "object", "required": [ "content" ], "title": "EnrichmentUpdateAttributes", "description": "Attributes for updating an enrichment." }, "EnrichmentUpdateData": { "properties": { "type": { "type": "string", "title": "Type", "default": "enrichment" }, "attributes": { "$ref": "#/components/schemas/EnrichmentUpdateAttributes" } }, "type": "object", "required": [ "attributes" ], "title": "EnrichmentUpdateData", "description": "Data for updating an enrichment." }, "EnrichmentUpdateRequest": { "properties": { "data": { "$ref": "#/components/schemas/EnrichmentUpdateData" } }, "type": "object", "required": [ "data" ], "title": "EnrichmentUpdateRequest", "description": "Request to update an enrichment." }, "FileAttributes": { "properties": { "blob_sha": { "type": "string", "title": "Blob Sha" }, "path": { "type": "string", "title": "Path" }, "mime_type": { "type": "string", "title": "Mime Type" }, "size": { "type": "integer", "title": "Size" }, "extension": { "type": "string", "title": "Extension" } }, "type": "object", "required": [ "blob_sha", "path", "mime_type", "size", "extension" ], "title": "FileAttributes", "description": "File attributes following JSON-API spec." }, "FileData": { "properties": { "type": { "type": "string", "title": "Type", "default": "file" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/FileAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "FileData", "description": "File data following JSON-API spec." }, "FileListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/FileData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "FileListResponse", "description": "File list response following JSON-API spec." }, "FileResponse": { "properties": { "data": { "$ref": "#/components/schemas/FileData" } }, "type": "object", "required": [ "data" ], "title": "FileResponse", "description": "Single file response following JSON-API spec." }, "GitFileSchema": { "properties": { "blob_sha": { "type": "string", "title": "Blob Sha" }, "path": { "type": "string", "title": "Path" }, "mime_type": { "type": "string", "title": "Mime Type" }, "size": { "type": "integer", "title": "Size" } }, "type": "object", "required": [ "blob_sha", "path", "mime_type", "size" ], "title": "GitFileSchema", "description": "Git file schema following JSON-API spec." }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "Relationship": { "properties": { "links": { "anyOf": [ { "$ref": "#/components/schemas/EnrichmentLinks" }, { "type": "null" } ] }, "data": { "anyOf": [ { "$ref": "#/components/schemas/RelationshipData" }, { "items": { "$ref": "#/components/schemas/RelationshipData" }, "type": "array" }, { "type": "null" } ], "title": "Data" } }, "type": "object", "title": "Relationship", "description": "A JSON:API relationship." }, "RelationshipData": { "properties": { "type": { "type": "string", "title": "Type" }, "id": { "type": "string", "title": "Id" } }, "type": "object", "required": [ "type", "id" ], "title": "RelationshipData", "description": "Data for a single relationship." }, "RepositoryAttributes": { "properties": { "remote_uri": { "type": "string", "minLength": 1, "format": "uri", "title": "Remote Uri" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "last_scanned_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Scanned At" }, "cloned_path": { "anyOf": [ { "type": "string", "format": "path" }, { "type": "null" } ], "title": "Cloned Path" }, "tracking_branch": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracking Branch" }, "num_commits": { "type": "integer", "title": "Num Commits", "default": 0 }, "num_branches": { "type": "integer", "title": "Num Branches", "default": 0 }, "num_tags": { "type": "integer", "title": "Num Tags", "default": 0 } }, "type": "object", "required": [ "remote_uri" ], "title": "RepositoryAttributes", "description": "Repository attributes following JSON-API spec." }, "RepositoryBranchData": { "properties": { "name": { "type": "string", "title": "Name" }, "is_default": { "type": "boolean", "title": "Is Default" }, "commit_count": { "type": "integer", "title": "Commit Count" } }, "type": "object", "required": [ "name", "is_default", "commit_count" ], "title": "RepositoryBranchData", "description": "Repository branch data." }, "RepositoryCommitData": { "properties": { "sha": { "type": "string", "title": "Sha" }, "message": { "type": "string", "title": "Message" }, "author": { "type": "string", "title": "Author" }, "timestamp": { "type": "string", "format": "date-time", "title": "Timestamp" } }, "type": "object", "required": [ "sha", "message", "author", "timestamp" ], "title": "RepositoryCommitData", "description": "Repository commit data for repository details." }, "RepositoryCreateAttributes": { "properties": { "remote_uri": { "type": "string", "minLength": 1, "format": "uri", "title": "Remote Uri" } }, "type": "object", "required": [ "remote_uri" ], "title": "RepositoryCreateAttributes", "description": "Repository creation attributes." }, "RepositoryCreateData": { "properties": { "type": { "type": "string", "title": "Type", "default": "repository" }, "attributes": { "$ref": "#/components/schemas/RepositoryCreateAttributes" } }, "type": "object", "required": [ "attributes" ], "title": "RepositoryCreateData", "description": "Repository creation data." }, "RepositoryCreateRequest": { "properties": { "data": { "$ref": "#/components/schemas/RepositoryCreateData" } }, "type": "object", "required": [ "data" ], "title": "RepositoryCreateRequest", "description": "Repository creation request." }, "RepositoryData": { "properties": { "type": { "type": "string", "title": "Type", "default": "repository" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/RepositoryAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "RepositoryData", "description": "Repository data following JSON-API spec." }, "RepositoryDetailsResponse": { "properties": { "data": { "$ref": "#/components/schemas/RepositoryData" }, "branches": { "items": { "$ref": "#/components/schemas/RepositoryBranchData" }, "type": "array", "title": "Branches" }, "recent_commits": { "items": { "$ref": "#/components/schemas/RepositoryCommitData" }, "type": "array", "title": "Recent Commits" } }, "type": "object", "required": [ "data", "branches", "recent_commits" ], "title": "RepositoryDetailsResponse", "description": "Repository details response with branches and commits." }, "RepositoryListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/RepositoryData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "RepositoryListResponse", "description": "Repository list response following JSON-API spec." }, "RepositoryResponse": { "properties": { "data": { "$ref": "#/components/schemas/RepositoryData" } }, "type": "object", "required": [ "data" ], "title": "RepositoryResponse", "description": "Single repository response following JSON-API spec." }, "RepositoryStatusSummaryAttributes": { "properties": { "status": { "type": "string", "title": "Status", "description": "Overall indexing status" }, "message": { "type": "string", "title": "Message", "description": "Error message if failed", "default": "" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At", "description": "Most recent activity timestamp" } }, "type": "object", "required": [ "status", "updated_at" ], "title": "RepositoryStatusSummaryAttributes", "description": "Attributes for repository status summary." }, "RepositoryStatusSummaryData": { "properties": { "type": { "type": "string", "title": "Type", "default": "repository_status_summary" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/RepositoryStatusSummaryAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "RepositoryStatusSummaryData", "description": "Data for repository status summary response." }, "RepositoryStatusSummaryResponse": { "properties": { "data": { "$ref": "#/components/schemas/RepositoryStatusSummaryData" } }, "type": "object", "required": [ "data" ], "title": "RepositoryStatusSummaryResponse", "description": "JSON:API response for repository status summary." }, "SearchAttributes": { "properties": { "keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keywords", "description": "Search keywords" }, "code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Code", "description": "Code search query" }, "text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Text", "description": "Text search query" }, "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "description": "Maximum number of results to return", "default": 10 }, "filters": { "anyOf": [ { "$ref": "#/components/schemas/SearchFilters" }, { "type": "null" } ], "description": "Search filters" } }, "type": "object", "title": "SearchAttributes", "description": "Search attributes for JSON:API requests." }, "SearchData": { "properties": { "type": { "type": "string", "title": "Type", "default": "search" }, "attributes": { "$ref": "#/components/schemas/SearchAttributes" } }, "type": "object", "required": [ "attributes" ], "title": "SearchData", "description": "Search data for JSON:API requests." }, "SearchFilters": { "properties": { "languages": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Languages", "description": "Programming languages to filter by" }, "authors": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Authors", "description": "Authors to filter by" }, "start_date": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Start Date", "description": "Filter snippets created after this date" }, "end_date": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "End Date", "description": "Filter snippets created before this date" }, "sources": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Sources", "description": "Source repositories to filter by" }, "file_patterns": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "File Patterns", "description": "File path patterns to filter by" }, "enrichment_types": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enrichment Types", "description": "Enrichment types to filter by (e.g., 'development', 'usage')" }, "enrichment_subtypes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enrichment Subtypes", "description": "Enrichment subtypes to filter by (e.g., 'snippet', 'example', 'snippet_summary', 'example_summary')" }, "commit_sha": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Commit Sha", "description": "Filter snippets by commit SHAs" } }, "type": "object", "title": "SearchFilters", "description": "Search filters for JSON:API requests." }, "SearchRequest": { "properties": { "data": { "$ref": "#/components/schemas/SearchData" } }, "type": "object", "required": [ "data" ], "title": "SearchRequest", "description": "JSON:API request for searching snippets." }, "SearchResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/SnippetData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "SearchResponse", "description": "JSON:API response for search results." }, "SnippetAttributes": { "properties": { "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "derives_from": { "items": { "$ref": "#/components/schemas/GitFileSchema" }, "type": "array", "title": "Derives From" }, "content": { "$ref": "#/components/schemas/SnippetContentSchema" }, "enrichments": { "items": { "$ref": "#/components/schemas/EnrichmentSchema" }, "type": "array", "title": "Enrichments" }, "original_scores": { "items": { "type": "number" }, "type": "array", "title": "Original Scores" } }, "type": "object", "required": [ "derives_from", "content", "enrichments", "original_scores" ], "title": "SnippetAttributes", "description": "Snippet attributes for JSON:API responses." }, "SnippetContentSchema": { "properties": { "value": { "type": "string", "title": "Value" }, "language": { "type": "string", "title": "Language" } }, "type": "object", "required": [ "value", "language" ], "title": "SnippetContentSchema", "description": "Snippet content schema following JSON-API spec." }, "SnippetData": { "properties": { "type": { "type": "string", "title": "Type" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/SnippetAttributes" } }, "type": "object", "required": [ "type", "id", "attributes" ], "title": "SnippetData", "description": "Snippet data for JSON:API responses." }, "TagAttributes": { "properties": { "name": { "type": "string", "title": "Name" }, "target_commit_sha": { "type": "string", "title": "Target Commit Sha" }, "is_version_tag": { "type": "boolean", "title": "Is Version Tag" } }, "type": "object", "required": [ "name", "target_commit_sha", "is_version_tag" ], "title": "TagAttributes", "description": "Tag attributes following JSON-API spec." }, "TagData": { "properties": { "type": { "type": "string", "title": "Type", "default": "tag" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/TagAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "TagData", "description": "Tag data following JSON-API spec." }, "TagListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/TagData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "TagListResponse", "description": "Tag list response following JSON-API spec." }, "TagResponse": { "properties": { "data": { "$ref": "#/components/schemas/TagData" } }, "type": "object", "required": [ "data" ], "title": "TagResponse", "description": "Single tag response following JSON-API spec." }, "TaskAttributes": { "properties": { "type": { "type": "string", "title": "Type" }, "priority": { "type": "integer", "title": "Priority" }, "payload": { "additionalProperties": true, "type": "object", "title": "Payload" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "type", "priority", "payload", "created_at", "updated_at" ], "title": "TaskAttributes", "description": "Task attributes for JSON:API responses." }, "TaskData": { "properties": { "type": { "type": "string", "title": "Type", "default": "task" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/TaskAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "TaskData", "description": "Task data for JSON:API responses." }, "TaskListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/TaskData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "TaskListResponse", "description": "JSON:API response for task list." }, "TaskOperation": { "type": "string", "enum": [ "kodit.root", "kodit.index.create", "kodit.index.run", "kodit.index.run.refresh_working_copy", "kodit.index.run.delete_old_snippets", "kodit.index.run.extract_snippets", "kodit.index.run.create_bm25_index", "kodit.index.run.create_code_embeddings", "kodit.index.run.enrich_snippets", "kodit.index.run.create_text_embeddings", "kodit.index.run.update_index_timestamp", "kodit.index.run.clear_file_processing_statuses", "kodit.repository", "kodit.repository.create", "kodit.repository.delete", "kodit.repository.clone", "kodit.repository.sync", "kodit.commit", "kodit.commit.extract_snippets", "kodit.commit.create_bm25_index", "kodit.commit.create_code_embeddings", "kodit.commit.create_summary_enrichment", "kodit.commit.create_summary_embeddings", "kodit.commit.create_architecture_enrichment", "kodit.commit.create_public_api_docs", "kodit.commit.create_commit_description", "kodit.commit.create_database_schema", "kodit.commit.create_cookbook", "kodit.commit.extract_examples", "kodit.commit.create_example_summary", "kodit.commit.create_example_code_embeddings", "kodit.commit.create_example_summary_embeddings", "kodit.commit.scan" ], "title": "TaskOperation", "description": "Task operation." }, "TaskResponse": { "properties": { "data": { "$ref": "#/components/schemas/TaskData" } }, "type": "object", "required": [ "data" ], "title": "TaskResponse", "description": "JSON:API response for single task." }, "TaskStatusAttributes": { "properties": { "step": { "type": "string", "title": "Step", "description": "Name of the task/operation" }, "state": { "type": "string", "title": "State", "description": "Current state of the task" }, "progress": { "type": "number", "maximum": 100.0, "minimum": 0.0, "title": "Progress", "description": "Progress percentage (0-100)", "default": 0.0 }, "total": { "type": "integer", "title": "Total", "description": "Total number of items to process", "default": 0 }, "current": { "type": "integer", "title": "Current", "description": "Current number of items processed", "default": 0 }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At", "description": "Task start time" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At", "description": "Last update time" }, "error": { "type": "string", "title": "Error", "description": "Error message", "default": "" }, "message": { "type": "string", "title": "Message", "description": "Message", "default": "" } }, "type": "object", "required": [ "step", "state" ], "title": "TaskStatusAttributes", "description": "Task status attributes for JSON:API responses." }, "TaskStatusData": { "properties": { "type": { "type": "string", "title": "Type", "default": "task_status" }, "id": { "type": "string", "title": "Id" }, "attributes": { "$ref": "#/components/schemas/TaskStatusAttributes" } }, "type": "object", "required": [ "id", "attributes" ], "title": "TaskStatusData", "description": "Task status data for JSON:API responses." }, "TaskStatusListResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/TaskStatusData" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "data" ], "title": "TaskStatusListResponse", "description": "JSON:API response for task status list." }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } }, "securitySchemes": { "Header (X-API-KEY)": { "type": "apiKey", "description": "API key for authentication (only if set in environmental variables)", "in": "header", "name": "x-api-key" } } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/helixml/kodit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server