Debian Sources API

The Debian Sources API at sources.debian.org provides programmatic access to source code, package metadata, copyright records, and Debian patches for every source package in the archive.

OpenAPI Specification

debian-sources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Debian Sources API
  description: >-
    The Debian Sources API at sources.debian.org provides programmatic
    access to source code, metadata, copyright, and patch information for
    every package in Debian. All endpoints return JSON.
  version: "1.0"
  license:
    name: AGPL-3.0
    url: https://www.gnu.org/licenses/agpl-3.0.html
servers:
  - url: https://sources.debian.org/api
    description: Debian Sources API
tags:
  - name: Sources
  - name: Copyright
  - name: Patches
paths:
  /search/{query}:
    get:
      summary: Search source code
      operationId: searchSources
      tags: [Sources]
      parameters:
        - in: path
          name: query
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Search results across Debian source packages.
  /list:
    get:
      summary: List all packages
      operationId: listPackages
      tags: [Sources]
      responses:
        "200":
          description: A list of all source packages.
  /prefix/{prefix}:
    get:
      summary: List packages by prefix
      operationId: listPackagesByPrefix
      tags: [Sources]
      parameters:
        - in: path
          name: prefix
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Packages whose name begins with the given prefix.
  /info/package/{package}/{version}:
    get:
      summary: Get package info
      operationId: getPackageInfo
      tags: [Sources]
      parameters:
        - in: path
          name: package
          required: true
          schema:
            type: string
        - in: path
          name: version
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Metadata for a specific package version.
  /src/{package}/{version}/{path}:
    get:
      summary: Browse source tree
      operationId: getSourcePath
      tags: [Sources]
      parameters:
        - in: path
          name: package
          required: true
          schema:
            type: string
        - in: path
          name: version
          required: true
          schema:
            type: string
        - in: path
          name: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Source-tree entry (file or directory listing).
  /sha256/:
    get:
      summary: Search by file checksum
      operationId: searchBySha256
      tags: [Sources]
      parameters:
        - in: query
          name: checksum
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Files matching the SHA-256 checksum.
  /ctag/:
    get:
      summary: Search by ctag
      operationId: searchByCtag
      tags: [Sources]
      parameters:
        - in: query
          name: ctag
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Source-tree entries matching the tag.
  /ping/:
    get:
      summary: Health check
      operationId: ping
      tags: [Sources]
      responses:
        "200":
          description: OK
  /copyright/api/sha256/:
    get:
      summary: Look up copyright for a file checksum
      operationId: copyrightBySha256
      tags: [Copyright]
      responses:
        "200":
          description: Copyright record for a file.
  /copyright/api/file/{package}/{version}/{path}:
    get:
      summary: Get copyright for a file path
      operationId: copyrightByFile
      tags: [Copyright]
      parameters:
        - in: path
          name: package
          required: true
          schema:
            type: string
        - in: path
          name: version
          required: true
          schema:
            type: string
        - in: path
          name: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Copyright record.
  /patches/api/{package}/{version}:
    get:
      summary: List Debian patches for a package
      operationId: listPatches
      tags: [Patches]
      parameters:
        - in: path
          name: package
          required: true
          schema:
            type: string
        - in: path
          name: version
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Patches applied by Debian to upstream sources.