Developer access

TF2C public API

Stable read endpoints for public projects, releases, file metadata, changelogs, structured dependencies, and small install manifests. Creator API tokens are managed from the account area for release upload automation, launchers, bots, and server tools.

Read-only v1Published content onlyNo R2 object keys exposedCreator upload tokens

Discovery

Use this first to discover the current stable public API paths.

GET
https://api.tf2classifieddepot.com/v1

API index, docs URL, and endpoint templates.

Projects

Public project catalog data for launchers, websites, bots, and small tools. Structured dependencies are included for install planning.

GET
https://api.tf2classifieddepot.com/v1/projects

List published projects with facets, stats, latest release, and pagination.

GET
https://api.tf2classifieddepot.com/v1/projects/example-project

Full project metadata, screenshots, latest data, and public releases.

GET
https://api.tf2classifieddepot.com/v1/projects/example-project/releases

All public releases for one project.

GET
https://api.tf2classifieddepot.com/v1/projects/example-project/latest

Latest public release for one project.

GET
https://api.tf2classifieddepot.com/v1/projects/example-project/manifest

Launcher-ready manifest with latest file metadata and structured project dependencies.

Collections and modpacks

Published project sets with pinned versions, latest-release fallback, and launcher/profile manifests.

GET
https://api.tf2classifieddepot.com/v1/collections

List public collections with project counts, download totals, and manifest links.

GET
https://api.tf2classifieddepot.com/v1/collections/server-starter-pack

Full public collection metadata and pinned project rows.

GET
https://api.tf2classifieddepot.com/v1/collections/server-starter-pack/manifest

Launcher-ready collection manifest with each included project and resolved release file.

Releases and files

Public release archive data with file metadata, changelogs, dependency notes, and hashes.

GET
https://api.tf2classifieddepot.com/v1/releases

List public files with filters, facets, project context, and pagination.

GET
https://api.tf2classifieddepot.com/v1/releases/00000000-0000-0000-0000-000000000000

One public release with changelog, dependencies, file metadata, and project links.

GET
https://api.tf2classifieddepot.com/v1/releases/00000000-0000-0000-0000-000000000000/file

Only file metadata: filename, size, SHA-256, download route, and download count.

Creator automation

Project-bound token endpoints for CI and release automation. Uploaded ZIPs are written into the unified R2 quarantine/upload metadata path and enter the normal review queue as draft releases.

GET
https://api.tf2classifieddepot.com/v1/creator/project

Validate a creator token and return the bound project.

POST
https://api.tf2classifieddepot.com/v1/creator/releases

Upload a ZIP with multipart/form-data; the Worker stores it in unified R2 quarantine metadata before draft review.

Manifest example

Launchers and small tools should start with the project manifest endpoint. It returns the latest public release plus structured dependencies with enough metadata to verify, resolve, and install the ZIP.

{
  "ok": true,
  "apiVersion": "v1",
  "manifestVersion": 2,
  "project": {
    "slug": "example-project",
    "title": "Example TF2C Project",
    "type": "sourcemod",
    "clientSide": "optional",
    "serverSide": "required",
    "dependencies": [
      {
        "relation": "required",
        "name": "SourceMod",
        "slug": "sourcemod",
        "version": ">=1.12",
        "notes": "Server plugin runtime.",
        "internal": false,
        "links": null
      }
    ]
  },
  "release": {
    "id": "00000000-0000-0000-0000-000000000000",
    "version": "1.0.0",
    "type": "stable",
    "role": "client_server",
    "target": "TF2C 2.2+",
    "installPath": "tf/custom/example-project",
    "legacyDependencies": [
      "SourceMod 1.12+"
    ],
    "dependencyNotes": "SourceMod 1.12+",
    "breakingChanges": ""
  },
  "dependencies": [
    {
      "relation": "required",
      "name": "SourceMod",
      "slug": "sourcemod",
      "version": ">=1.12",
      "notes": "Server plugin runtime.",
      "internal": false,
      "links": null
    }
  ],
  "file": {
    "fileName": "example-project_1.0.0.zip",
    "fileSizeBytes": 1048576,
    "sha256": "...",
    "downloadUrl": "/releases/00000000-0000-0000-0000-000000000000/download",
    "downloads": 42
  }
}

Upload automation

Creator tokens can upload ZIP releases from GitHub Actions or another CI job. Uploads stay quarantined as draft releases until an admin publishes them.

curl -X POST https://api.tf2classifieddepot.com/v1/creator/releases   -H "Authorization: Bearer $TF2C_API_TOKEN"   -F "version=1.0.0"   -F "releaseType=stable"   -F "fileRole=client_server"   -F "tf2cBranch=TF2C latest"   -F "installPath=tf/custom/example-project"   -F "changelog=Initial public release."   -F "file=@dist/example-project_1.0.0.zip"