Files
List workspace filesfiles:read
200 A page of files and an opaque continuation cursor.Returnsfilesprefixescursor
Errors401403
Search workspace filesfiles:read
Requires at least one meta.<key> equality filter or a name substring. Metadata filter names are dynamic query parameters.
200 A bounded page. truncated is true and cursor is non-null when more matches remain; pass cursor back to continue.Returnsitemstruncatedcursor
Errors400401403
List metadata keys or valuesfiles:read
200 Metadata key facets or value facets.Returnskeystruncatedkeyvalues
Errors401403
Create a presigned uploadfiles:write
200 Presigned upload details.
Errors400401403409429
Group workspace files by GitHub pathfiles:read
Powers the web Screenshots page's grouped-by-path view. Groups recently uploaded gh.*-tagged files by project and path.
200 Path groups, a flat catalog, known projects, and a flat recent feed.ReturnsgroupscatalogprojectslatesttruncatedcatalogTruncated
Errors401403
Resolve a usable URL for a filefiles:read
Returns the workspace's public URL when configured, otherwise a short-lived signed download URL. Resolves across storage lanes so a file uploaded before a storage switch still resolves.
200 A usable URL.Returnsurl
Errors400401403404
Set a file's visibility flagfiles:write
200 The updated visibility.Returnskeyvisibility
Errors400401403404429
List files held for reviewfiles:read
Keys held for approval, optionally under one key prefix. A held file on hosted storage is moved out of the public bucket, so the file list does not show it.
200 Held files.Returnsitems
Errors401403
Download a held file for reviewfiles:read
Streams the held copy as an attachment. 404 when the file has no held copy.
200 The held file's bytes.
Errors401403404
Release a file held for reviewfiles:write
The classifier holds a file that likely shows a secret or sensitive personal data. A held file is left out of the managed PR comment, public feeds, galleries, and its file page until a member approves it. A key that is not held answers 200 with approved: false.
200 Whether the file was released.Returnskeyapprovedreason
Errors401403404429
Hold an approved file for review againfiles:write
For a file approved by mistake: puts it back under review, so its link stops working until a member approves it again. Only a file that was held and approved can be held again; any other key answers 200 with held: false.
200 Whether the file is held again.Returnskeyheldreason
Errors401403404429
A file's review statefiles:read
Whether a file is held, was approved (with who approved it and when), or was never held. For workspace members; the public file API does not return it.
200 The file's review state.Returnskeyholdreasonbyat
Errors401403404
Read file metadatafiles:read
200 Object metadata, or a metadata-only response when requested.ReturnskeysizecontentTypeuploadedurlembedUrlmetadatavisibility
Errors401403404
Upload a filefiles:writeBody application/octet-stream
Send an Idempotency-Key to make retries safe for 24 hours. Reusing the key with the same effective request (keyed on the uploaded content) returns the original 201 response. Reusing it with a different request returns 409.
200 Dry-run result when dryRun is enabled.ReturnsworkspacekeyurlembedUrlreplacedwouldRefusedryRun
201 The file was stored.ReturnskeysizecontentTypeuploadedurlembedUrlmetadatavisibilityworkspacereplaced
Errors400401403409413415429
Merge file metadatafiles:write
200 The merged metadata map.Returnsmetadata
Errors400401403404429
Delete a filefiles:delete
200 The file was deleted.Returnsidkeydeleted
Errors401403404429
Galleries
List workspace galleriesfiles:read
200 Enriched gallery summaries and an opaque continuation cursor.ReturnsgalleriesnextCursor
Errors401403
Create a galleryfiles:write
Send an Idempotency-Key to make retries safe for 24 hours. Reusing the key with the same effective body returns the original 201 response. Reusing it with a different body returns 409.
201 The gallery was created.ReturnsidurlworkspacetitledescriptionvisibilitycoverItemIdversioncreatedAtupdatedAtitemCountreferencespreviewUrlitems
Errors400401403409429
Find galleries by external referencefiles:read
200 Gallery summaries and an opaque continuation cursor.ReturnsgalleriesnextCursor
Errors400401403
Read a galleryfiles:read
200 The gallery and its items.ReturnsidurlworkspacetitledescriptionvisibilitycoverItemIdversioncreatedAtupdatedAtitemCountreferencespreviewUrlitems
Errors401403404
Update a galleryfiles:write
200 The updated gallery.ReturnsidurlworkspacetitledescriptionvisibilitycoverItemIdversioncreatedAtupdatedAtitemCountreferencespreviewUrlitems
Errors400401403404409429
Delete a galleryfiles:write
200 The gallery was deleted.Returnsidkeydeleted
Errors400401403404409429
Add a file to a galleryfiles:write
200 The file was already a member; the existing item is returned.ReturnsidobjectKeypositioncaptionaltTextcreatedAtstatusurlembedUrlpageUrlcontentTypesizeuploadedmodifiedposterUrlvideoDimensions
201 The gallery item was created.ReturnsidobjectKeypositioncaptionaltTextcreatedAtstatusurlembedUrlpageUrlcontentTypesizeuploadedmodifiedposterUrlvideoDimensions
Errors400401403404409429
Replace the gallery item orderfiles:write
200 Ordered items and whether the order was unchanged.
Errors400401403404409429
Remove an item from a galleryfiles:write
200 The gallery membership was deleted.Returnsidkeydeleted
Errors400401403404409429
List gallery external referencesfiles:read
200 The gallery references.
Errors401403404
Add an external referencefiles:write
200 The reference already existed and is returned unchanged.
201 The reference was created.
Errors400401403404409429
Remove an external referencefiles:write
200 The external reference was deleted.Returnsidkeydeleted
Errors400401403404409429
Live links
List workspace feedsfiles:read
200 A page of feed summaries.ReturnsfeedsnextCursor
Errors401403
Create a change feedfiles:write
Creates a public newest-first screenshot feed for a GitHub owner/repo, optionally scoped to one pull request or issue. The same scope returns the existing feed.
200 The existing feed for this scope.ReturnsidurlworkspacerepopathnumberkindtitlesourcecreatedAtupdatedAtitems
201 The feed was created.ReturnsidurlworkspacerepopathnumberkindtitlesourcecreatedAtupdatedAtitems
Errors400401403409429
Read one owned feedfiles:read
200 The feed and its current newest-first items.ReturnsidurlworkspacerepopathnumberkindtitlesourcecreatedAtupdatedAtitems
Errors401403404
Soft-delete a feedfiles:write
200 The feed record was deleted. Uploaded objects stay.Returnsidkeydeleted
Errors401403404429
Usage
Read workspace usagefiles:read
200 Usage counters, configured limits, credential scopes, and plan.ReturnsworkspacebytesobjectssharedBytessharedObjectsuploadsInPeriodperiodStartupdatedAtscopesplanmaxStorageBytesstorageRemainingBytesmaxUploadsPerPerioduploadsRemaining
Errors401403
Rebuild workspace usage countersfiles:write
Potentially expensive: scans every object in the workspace's active storage lanes and rebuilds the usage ledger. Requires a bearer token with files:write; browser sessions are not accepted.
200 Reconciliation result and updated usage.
Errors401403
Purge files past the retention windowfiles:delete
Destructive: permanently deletes objects older than the workspace's retentionDays, then reconciles usage. Requires a bearer token with files:delete; browser sessions are not accepted. The response is either { skipped: true } or a purge and reconciliation result.
200 Purge result or a skipped result.
Errors401403
Public reads
Read a public change feedNo auth
Returns one page (up to 50) of the public newest-first item list for a feed, plus nextCursor for the next page. It omits workspace ownership and object keys. Items are resolved at view time from gh.repo and optional gh.number metadata.
200 The public feed and its current items.
Errors404503
Read a public galleryNo auth
Returns the public allowlisted projection. It omits workspace ownership and object keys.
200 The public gallery and its public item projection.
Errors404503