Skip to main content

Get Project

Retrieve a single project by its ID or slug.

Path Parameters

string
required
The project ID or slug

Response

string
The project’s unique ID
string
The project’s URL-safe slug
string
The project’s name
string
A short summary of the project
string
The full project description
array
List of category names (max 3)
array
List of additional category names (max 256)
object
The project’s license information
string
Project status: approved, rejected, draft, unlisted, archived, processing, withheld, scheduled, private, unknown
integer
Total download count
integer
Number of followers
string
ISO 8601 timestamp of when the project was first published
string
ISO 8601 timestamp of when the project was last updated
string
The ID of the project’s team

Example Request

Example Response


Get Multiple Projects

Retrieve multiple projects by their IDs or slugs.

Query Parameters

string
required
JSON array of project IDs or slugs as a string

Example Request


Check Project ID

Check if a project ID or slug exists and get its canonical ID.

Path Parameters

string
required
The project ID or slug to check

Response

string
The canonical project ID if it exists

Example Request


Search Projects

Search for projects with filters.

Query Parameters

string
The search query
string
Facets to filter by (JSON string)
string
The sorting method: relevance, downloads, follows, newest, updated
integer
The offset for pagination (default: 0)
integer
Number of results to return (default: 10, max: 100)

Example Request


Get Random Projects

Get a random selection of projects.

Query Parameters

integer
required
Number of random projects to return (min: 1, max: 100)

Example Request


Update Project

Update a project’s metadata. Requires authentication and PROJECT_WRITE scope.

Path Parameters

string
required
The project ID or slug

Request Body

string
New project name (3-64 characters)
string
New project summary (3-256 characters)
string
New project description (max 65536 characters)
array
New categories array (max 3)
array
New additional categories (max 256)
string
SPDX license identifier
string
URL to license text (max 2048 characters)
string
New URL-safe slug (3-64 characters)
string
New project status
Object mapping platform names to URLs (or null to delete)

Example Request


Bulk Edit Projects

Edit multiple projects at once. Requires authentication.

Query Parameters

string
required
JSON array of project IDs

Request Body

array
Set categories for all projects
array
Add categories to all projects
array
Remove categories from all projects
array
Set additional categories
array
Add additional categories
array
Remove additional categories
Update link URLs for all projects

Delete Project

Delete a project. Requires authentication and appropriate permissions.

Path Parameters

string
required
The project ID or slug

Example Request


Follow/Unfollow Project

Follow or unfollow a project. Requires authentication.

Path Parameters

string
required
The project ID or slug

Example Request


Get Project Dependencies

Get all dependencies for a project.

Path Parameters

string
required
The project ID or slug

Response

array
Array of dependent projects
array
Array of specific dependent versions

Example Request


Manage Project Icon

Upload or delete a project icon. Requires authentication.

Path Parameters

string
required
The project ID or slug

Query Parameters (PATCH only)

string
required
Image file extension (png, jpg, etc.)

Example Request


Add, edit, or delete gallery images. Requires authentication.

Common Use Cases

Creating a New Project
  1. Prepare project metadata
  2. Create the project via API or web interface
  3. Upload initial version with files
  4. Set project icon and gallery images
  5. Submit for approval if needed
Managing Project Visibility
  • Use status field to control project visibility
  • approved - Public and searchable
  • unlisted - Public but not in search
  • private - Only visible to team members
  • draft - Not yet published
Working with Categories
  • Main categories (max 3) are used for primary classification
  • Additional categories (max 256) for more specific tags
  • Categories must exist in the platform’s category list