Debian Code Search icon

Debian Code Search

OpenAPI for https://codesearch

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.1",
  "servers": [
    {
      "url": "https://codesearch.debian.net/api/v1"
    }
  ],
  "info": {
    "contact": {
      "email": "stapelberg@debian.org"
    },
    "description": "OpenAPI for https://codesearch.debian.net/",
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "title": "Debian Code Search",
    "version": "1.4.0",
    "x-apisguru-categories": [
      "developer_tools"
    ],
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://codesearch.debian.net/openapi.yaml",
        "version": "3.0"
      }
    ],
    "x-providerName": "codesearch.debian.net",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "externalDocs": {
    "description": "Get a Debian Code Search API key",
    "url": "https://codesearch.debian.net/apikeys/"
  },
  "tags": [
    {
      "description": "Code Search",
      "name": "search"
    }
  ],
  "paths": {
    "/search": {
      "get": {
        "description": "Performs a search through the full Debian Code Search corpus, blocking until all results are available (might take a few seconds depending on the search query).\n\nSearch results are ordered by their ranking (best results come first).",
        "operationId": "search",
        "parameters": [
          {
            "description": "The search query, for example `who knows...` (literal) or `who knows\\.\\.\\.` (regular expression). See https://codesearch.debian.net/faq for more details about which keywords are supported. The regular expression flavor is RE2, see https://github.com/google/re2/blob/master/doc/syntax.txt",
            "in": "query",
            "name": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Whether the query is to be interpreted as a literal (`literal`) instead of as an RE2 regular expression (`regexp`). Literal searches are faster and do not require escaping special characters, regular expression searches are more powerful.",
            "in": "query",
            "name": "match_mode",
            "schema": {
              "default": "regexp",
              "enum": [
                "literal",
                "regexp"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SearchResult"
                  },
                  "type": "array"
                }
              }
            },
            "description": "All search results"
          },
          "403": {
            "content": {},
            "description": "The x-dcs-apikey header was either not set at all, or contained an invalid (no longer valid?) API key. Please see https://codesearch.debian.net/apikeys/ for obtaining a key."
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Searches through source code",
        "tags": [
          "search"
        ]
      }
    },
    "/searchperpackage": {
      "get": {
        "description": "The search results are currently sorted arbitrarily, but we intend to sort them by ranking eventually: https://github.com/Debian/dcs/blob/51338e934eb7ee18d00c5c18531c0790a83cb698/cmd/dcs-web/querymanager.go#L719",
        "operationId": "searchperpackage",
        "parameters": [
          {
            "description": "The search query, for example `who knows...` (literal) or `who knows\\.\\.\\.` (regular expression). See https://codesearch.debian.net/faq for more details about which keywords are supported. The regular expression flavor is RE2, see https://github.com/google/re2/blob/master/doc/syntax.txt",
            "in": "query",
            "name": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Whether the query is to be interpreted as a literal (`literal`) instead of as an RE2 regular expression (`regexp`). Literal searches are faster and do not require escaping special characters, regular expression searches are more powerful.",
            "in": "query",
            "name": "match_mode",
            "schema": {
              "default": "regexp",
              "enum": [
                "literal",
                "regexp"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PackageSearchResult"
                  },
                  "type": "array"
                }
              }
            },
            "description": "All search results"
          },
          "403": {
            "content": {},
            "description": "The x-dcs-apikey header was either not set at all, or contained an invalid (no longer valid?) API key. Please see https://codesearch.debian.net/apikeys/ for obtaining a key."
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "summary": "Like /search, but aggregates per package",
        "tags": [
          "search"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "matchModeParam": {
        "description": "Whether the query is to be interpreted as a literal (`literal`) instead of as an RE2 regular expression (`regexp`). Literal searches are faster and do not require escaping special characters, regular expression searches are more powerful.",
        "in": "query",
        "name": "match_mode",
        "schema": {
          "default": "regexp",
          "enum": [
            "literal",
            "regexp"
          ],
          "type": "string"
        }
      },
      "queryParam": {
        "description": "The search query, for example `who knows...` (literal) or `who knows\\.\\.\\.` (regular expression). See https://codesearch.debian.net/faq for more details about which keywords are supported. The regular expression flavor is RE2, see https://github.com/google/re2/blob/master/doc/syntax.txt",
        "in": "query",
        "name": "query",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "PackageSearchResult": {
        "properties": {
          "package": {
            "description": "The Debian source package for which up to 2 search results have been aggregated in `results`.",
            "example": "i3-wm_4.18-1",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/SearchResult"
            },
            "type": "array"
          }
        },
        "required": [
          "package",
          "results"
        ],
        "type": "object"
      },
      "SearchResult": {
        "description": "A search result matching the specified query. You can use sources.debian.org to view the file contents. See https://github.com/Debian/dcs/blob/master/cmd/dcs-web/show/show.go for how to construct a sources.debian.org URL from a search result.",
        "properties": {
          "context": {
            "description": "The full line containing the search result.",
            "example": "        i3Font cursor_font = load_font(\"cursor\", false);",
            "type": "string"
          },
          "context_after": {
            "description": "Up to 2 full lines after the search result (see `context`).",
            "example": [
              "        xcb_create_glyph_cursor(",
              "            xcb_connection,"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "context_before": {
            "description": "Up to 2 full lines before the search result (see `context`).",
            "example": [
              "    } else {",
              "        cursor = xcb_generate_id(xcb_connection);"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "line": {
            "description": "Line number containing the search result.",
            "example": 1313,
            "format": "uint32",
            "type": "integer"
          },
          "package": {
            "description": "The Debian source package containing this search result, including the full Debian version number.",
            "example": "i3-wm_4.18-1",
            "type": "string"
          },
          "path": {
            "description": "Path to the file containing the this search result, starting with `package`.",
            "example": "i3bar/src/xcb.c",
            "type": "string"
          }
        },
        "required": [
          "context",
          "line",
          "package",
          "path"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "api_key": {
        "in": "header",
        "name": "x-dcs-apikey",
        "type": "apiKey"
      }
    }
  }
}