{% extends "docs/base.html" %} {% block docs_content %}

File uploads

Create, inspect, update, delete, and download repo-scoped file uploads.

Overview List Get Create Update Delete Content

Sections

Endpoints

GET /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads
GET /api/v1/users/{username}/repos/{repo_slug}/uploads

POST /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads
POST /api/v1/users/{username}/repos/{repo_slug}/uploads

GET /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads/{upload_uuid}
GET /api/v1/users/{username}/repos/{repo_slug}/uploads/{upload_uuid}

PUT /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads/{upload_uuid}
PUT /api/v1/users/{username}/repos/{repo_slug}/uploads/{upload_uuid}

DELETE /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads/{upload_uuid}
DELETE /api/v1/users/{username}/repos/{repo_slug}/uploads/{upload_uuid}

GET /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads/{upload_uuid}/content/{filename}
GET /api/v1/users/{username}/repos/{repo_slug}/uploads/{upload_uuid}/content/{filename}
GET|POST /api/v1/teams/{team_slug}/repos/{repo_slug}/upload-groups
GET|POST /api/v1/users/{username}/repos/{repo_slug}/upload-groups

GET|PUT /api/v1/teams/{team_slug}/repos/{repo_slug}/upload-groups/{group_uuid}
GET|PUT /api/v1/users/{username}/repos/{repo_slug}/upload-groups/{group_uuid}
Authenticated Repo scoped

Download URLs include the original filename as the final path segment, for example /api/v1/teams/{team_slug}/repos/{repo_slug}/uploads/{upload_uuid}/content/openapi.json.

Upload groups

Send two or more repeated file parts to the /upload-groups collection. Optional name and description fields describe the group; an omitted name is derived from the first filename.

curl --request POST \
  --header "Authorization: Bearer $PEARING_API_TOKEN" \
  --form "file=@./before.png" \
  --form "file=@./after.png" \
  --form "name=Before and after" \
  "$PEARING_API_URL/v1/teams/platform/repos/website/upload-groups"

Group creation is all-or-nothing and preserves multipart order. The configured member-count, aggregate-size, and per-file limits apply. Responses contain group metadata plus ordered normal upload resources; each member keeps its own UUID and content URL.

Create payload

Uploads are sent as multipart/form-data with these fields:

The server stores uploads under repo and file UUID buckets and derives the file extension itself.

Example

curl --request POST \
  --header "Authorization: Bearer $PEARING_API_TOKEN" \
  --form "file=@./screenshot.png" \
  --form "description=Build screenshot" \
  "$PEARING_API_URL/v1/teams/platform/repos/website/uploads"

Errors

{% endblock %}