# SourceForge API
> Live project, release and download data from SourceForge, the original open-source software forge and download host. Unlike a git forge, SourceForge is built around distributing release binaries to the world, so its signature data is who downloads what, from where. Get a project's profile — its name, summary, status, creation date, homepage, the categories it is filed under and its developer count. Pull the download statistics for a date range — the total, the daily series and the breakdown by operating system. See where in the world a project is downloaded, the per-country download counts that no git forge exposes. Get the project's best current release with its file, version, size and date, plus the recommended download for Windows, macOS and Linux. Live, no key, nothing stored. Distinct from GitHub, GitLab and Codeberg git-forge APIs and from package registries — this is SourceForge's project directory and its global download analytics. Perfect for software-directory, release-tracking, download-analytics and developer apps.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/sourceforge-api/..."
```

## Pricing
- **Free** (Free) — 9,500 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 175,000 calls/Mo, 6 req/s
- **Pro** ($18/Mo) — 920,000 calls/Mo, 15 req/s
- **Business** ($46/Mo) — 5,200,000 calls/Mo, 35 req/s

## Endpoints

### Project

#### `GET /v1/project` — Project profile

**Parameters:**
- `project` (query, required, string) — SourceForge project name Example: `sevenzip`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sourceforge-api/v1/project?project=sevenzip"
```

**Response:**
```json
{
    "data": {
        "name": "7-Zip",
        "source": "SourceForge",
        "status": "active",
        "created": "2000-11-10",
        "summary": "A free file archiver for extremely high compression",
        "homepage": "http://www.7-zip.org/",
        "shortname": "sevenzip",
        "categories": [
            "System Administrators",
            "Developers",
            "End Users/Desktop",
            "5 - Production/Stable",
            "Win32 (MS Windows)",
            "Command-line",
            "C++",
            "C",
            "GNU Library or Lesser General Public License version 2.0 (LGPLv2)",
            "English",
            "Windows",
            "File Compression",
            "Backup",
            "Application Packaging",
            "File Archivers"
        ],
        "support_url": "http://sourceforge.net/projects/sevenzip/forums/forum/45797",
        "developer_count": 1,
        "short_description": "7-Zip is a file archiver with a high compression ratio. 7-Zip works in Windows 11 / 10 / 8 / 7 / Vista / XP / 2022 / 2019 / 2016 / 2012 / 2008 / 2003 / 2000.\r\nYou can use 7-Zip on any computer, including a computer in a commercial organization. You don't need to register or pay for 7-Zip.  And there is command line version for Linux and macOS. Most of the source code is under the GNU LGPL license. The unRAR code is under a mixed license with GNU LGPL + unRAR restrictions. Check the license for details."
    },
    "meta": {
        "timestamp": "
…(truncated, see openapi.json for full schema)
```

### Downloads

#### `GET /v1/downloads` — Download stats for a date range

**Parameters:**
- `project` (query, required, string) — SourceForge project name Example: `sevenzip`
- `start` (query, optional, string) — Start date YYYY-MM-DD Example: `2026-05-01`
- `end` (query, optional, string) — End date YYYY-MM-DD Example: `2026-05-31`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sourceforge-api/v1/downloads?project=sevenzip&start=2026-05-01&end=2026-05-31"
```

**Response:**
```json
{
    "data": {
        "by_os": [
            {
                "os": "Unknown",
                "downloads": 48069
            },
            {
                "os": "Windows",
                "downloads": 24996
            },
            {
                "os": "Android",
                "downloads": 1404
            },
            {
                "os": "Linux",
                "downloads": 702
            },
            {
                "os": "Macintosh",
                "downloads": 662
            },
            {
                "os": "BSD",
                "downloads": 6
            }
        ],
        "daily": [
            {
                "date": "2026-05-01",
                "downloads": 1361
            },
            {
                "date": "2026-05-02",
                "downloads": 1122
            },
            {
                "date": "2026-05-03",
                "downloads": 1123
            },
            {
                "date": "2026-05-04",
                "downloads": 7535
            },
            {
                "date": "2026-05-05",
                "downloads": 1637
            },
            {
                "date": "2026-05-06",
                "downloads": 2016
            },
            {
                "date": "2026-05-07",
                "downloads": 1651
            },
            {
                "date": "2026-05-08",
                "downloads": 1559
            },
            {
                "date": "2026-05-09",
       
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/geography` — Per-country download counts

**Parameters:**
- `project` (query, required, string) — SourceForge project name Example: `sevenzip`
- `start` (query, optional, string) — Start date YYYY-MM-DD Example: `2026-05-01`
- `end` (query, optional, string) — End date YYYY-MM-DD Example: `2026-05-31`
- `limit` (query, optional, string) — Max 1-250 Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sourceforge-api/v1/geography?project=sevenzip&start=2026-05-01&end=2026-05-31&limit=50"
```

**Response:**
```json
{
    "data": {
        "source": "SourceForge",
        "project": "sevenzip",
        "end_date": "2026-05-31",
        "countries": [
            {
                "country": "United States",
                "downloads": 15303
            },
            {
                "country": "China",
                "downloads": 14900
            },
            {
                "country": "Mexico",
                "downloads": 6234
            },
            {
                "country": "Czech Republic",
                "downloads": 6129
            },
            {
                "country": "Brazil",
                "downloads": 3685
            },
            {
                "country": "India",
                "downloads": 2825
            },
            {
                "country": "Germany",
                "downloads": 2319
            },
            {
                "country": "Netherlands",
                "downloads": 2293
            },
            {
                "country": "Russia",
                "downloads": 1944
            },
            {
                "country": "United Kingdom",
                "downloads": 1522
            },
            {
                "country": "France",
                "downloads": 1152
            },
            {
                "country": "Japan",
                "downloads": 1039
            },
            {
                "country": "Hungary",
                "downloads": 963
            },
            {
                "coun
…(truncated, see openapi.json for full schema)
```

### Release

#### `GET /v1/release` — Best release + per-OS downloads

**Parameters:**
- `project` (query, required, string) — SourceForge project name Example: `sevenzip`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sourceforge-api/v1/release?project=sevenzip"
```

**Response:**
```json
{
    "data": {
        "source": "SourceForge",
        "project": "sevenzip",
        "platforms": {
            "mac": {
                "url": "http://downloads.sourceforge.net/project/sevenzip/7-Zip/26.01/7z2601-mac.tar.xz?ts=gAAAAABp8lpaBQfZU8Shd5qR8aBNArPR9TUT5KTXv6I__u6PCa6TzgttfMgbRrw8Ae8z27SoLBuSozOzSrVj0yBJ9titu_v7ug%3D%3D",
                "date": "2026-04-29 18:25:47",
                "bytes": 1860356,
                "filename": "/7-Zip/26.01/7z2601-mac.tar.xz"
            },
            "linux": {
                "url": "http://downloads.sourceforge.net/project/sevenzip/7-Zip/26.00/7z2600-linux-x64.tar.xz?ts=gAAAAABp8lpa1j4XvZlEXP-phVLu_DkKz-NN8gMcEVRE8PoXGYe2fvZy-u_YTEk-X-zStzK0kys6D-GWIi1gVOH_O8v7rRjD8Q%3D%3D",
                "date": "2026-02-19 09:06:58",
                "bytes": 1572504,
                "filename": "/7-Zip/26.00/7z2600-linux-x64.tar.xz"
            },
            "windows": {
                "url": "http://downloads.sourceforge.net/project/sevenzip/7-Zip/26.01/7z2601-x64.exe?ts=gAAAAABp8lpasVBHP62zKDTZ6wXrKkNFnRNk1bWeUgfQDT5UwWx_XUddWX18Ha9BZvZ3qoIXcoUQCZWVz3yw6Pxy0YD93zsrMw%3D%3D",
                "date": "2026-04-29 18:25:50",
                "bytes": 1658851,
                "filename": "/7-Zip/26.01/7z2601-x64.exe"
            }
        },
        "best_release": {
            "url": "https://sourceforge.net/projects/sevenzip/files/7-Zip/26.01/7z2601-linux-x86.tar.xz/download",
            "date": "2026-04-29 18:25:47",
            "by
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/sourceforge-api
OpenAPI spec: https://www.oanor.com/api/sourceforge-api/openapi.json
