List Invitation-Linkable Files
GET https://api.suger.cloud/org/{orgId}/prm/partner/invitation/linkable-file
List partner files that may be linked from a partner invitation email — only files shared with All Partners and available for download. The recipient of an invitation is not a partner yet, so this deliberately never returns Private, Specific-Partners, or non-downloadable files. Feed a returned file's id (as a FILE-kind referenced document) to CreatePrmInvitation or GeneratePrmInvitationEmail.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
orgId | path | string | yes | Organization ID |
q | query | string | no | CRUD filter (LISP expression) |
s | query | string | no | Sort field |
limit | query | integer | no | Page size |
offset | query | integer | no | Page offset |
Responses
200 — OK
Content-Type: application/json · Schema: ListBaseResponse-PartnerFile
ListBaseResponse-PartnerFile fields:
| Field | Type | Required | Description |
|---|---|---|---|
data | array<PartnerFile> | no | |
page_number | integer | no | |
page_size | integer | no | |
total_count | integer | no | TotalCount is the number of matching rows, counted up to ListCountCap. When TotalCountCapped is true it is that cap rather than the real total. |
total_count_capped | boolean | no | TotalCountCapped reports that more rows match than TotalCount says: the count stopped at ListCountCap because an exact total costs a full scan of everything the filter matches. Clients should present TotalCount as a lower bound ("10,000+") when this is set. Omitted when false, so clients that predate the field are unaffected. |
PartnerFile fields:
| Field | Type | Required | Description |
|---|---|---|---|
allowDownload | boolean | no | Whether partners can download (vs preview only) |
category | string | no | sales_enablement, product_documentation, marketing_assets, technical_resources, case_studies, legal_compliance, onboarding |
createTime | string | no | Creation timestamp |
deletedAt | string | no | Soft-delete marker. NULL = active. |
description | string | no | Optional description |
externalId | string | no | The file's ID in the source CRM. Nil for manual uploads. |
fileType | string | no | pdf, pptx, docx, xlsx, mp4, image, zip, other |
id | string | no | ID of the ent. Unique partner file identifier (UUID) |
lastUpdateTime | string | no | Last update timestamp |
mimeType | string | no | Content-Type captured from upload |
name | string | no | Display name |
s3Bucket | string | no | S3 bucket name (org-file bucket) |
s3Key | string | no | Full S3 object key |
sharingMode | string | no | private, all_partners, specific_partners |
sizeBytes | integer | no | File size in bytes |
source | string | no | Origin of the file: empty = uploaded by the user in Suger; otherwise the source CRM (e.g. salesforce) |
sourceOrgId | string | no | Uploader org (ISV org for ISV uploads, partner org for partner uploads) |
targetOrgId | array<string> | no | Recipient org IDs that can see this file. Empty for ISV private/all_partners files. Single element for partner uploads (the ISV org). |
uploadedByUserId | string | no | Suger user ID for ISV uploads, partner email for partner uploads |
uploadedByUserName | string | no | Display name of the uploader, denormalized at upload time |
400 — Bad request error
Content-Type: application/json
Example
Generated from this operation's schema. Values are placeholders —
substitute your own ids, and set SUGER_TOKEN to a bearer token
from the OAuth client-credentials exchange.
Request
curl -X GET 'https://api.suger.cloud/org/{orgId}/prm/partner/invitation/linkable-file' \
-H "Authorization: Bearer $SUGER_TOKEN" Response — 200
{
"data": [
{
"allowDownload": true,
"category": "string",
"createTime": "2026-01-31T12:00:00Z",
"deletedAt": "string",
"description": "string",
"externalId": "01H0000000000000000000",
"fileType": "string",
"id": "01H0000000000000000000",
"lastUpdateTime": "2026-01-31T12:00:00Z",
"mimeType": "string",
"name": "Acme Corp",
"s3Bucket": "string"
}
],
"page_number": 1,
"page_size": 1,
"total_count": 1,
"total_count_capped": true
} Error — 400
"string" View as Markdown · Interactive API reference
Spotted something wrong or out of date on this page? Tell us and we'll correct it.