1. Team
uploadthefile API documentation
  • Pages
    • Create a page
      POST
    • Update a page in place
      PUT
    • List pages
      GET
    • Get a page
      GET
    • Rename a page
      PATCH
    • Delete a page
      DELETE
    • Unzip & host a page
      POST
    • List a hosted site's files
      GET
    • Apply a batch of file changes
      POST
    • Replace one file
      PUT
    • Delete one file
      DELETE
    • Get page password state
      GET
    • Set page password
      PUT
    • Remove page password
      DELETE
    • Get page expiry
      GET
    • Set page expiry
      PUT
    • Get email-gate config
      GET
    • Configure email-gate
      PUT
    • Disable email-gate
      DELETE
    • List or export captured emails
      GET
    • Erase captured emails
      DELETE
    • Get page display mode
      GET
    • Set page display mode
      PUT
    • Get PDF chat availability
      GET
    • Enable PDF chat
      PUT
    • Disable PDF chat
      DELETE
    • Bulk delete pages
      POST
  • Short links
    • List short links
    • Create a short link
    • Bulk update short links
    • Get a short link
    • Update a short link
    • Delete a short link
    • Get link click history
  • Domains
    • List custom domains
    • Connect a custom domain
    • Search domain availability
    • Rebind a domain to a different page
    • Disconnect a domain
  • Account
    • Get account, limits, and usage
  • Team
    • List team members
      GET
    • Invite a team member
      POST
    • Revoke a team member
      DELETE
    • Change a team member's role
      PATCH
    • Resend a pending invite
      POST
  • AI connectors
    • Authorization server metadata
    • Protected resource metadata (MCP endpoint)
    • Protected resource metadata (RFC 9728 §3.1 path-insertion form)
    • Register an OAuth client
    • Authorization endpoint (consent screen)
    • Consent decision (internal, not a public integration point)
    • Token endpoint
    • Revocation endpoint
    • MCP endpoint
  • Subjects
    • List subjects
    • Create or get a subject
    • Get a subject
    • Update a subject
    • Delete (tombstone) a subject
  • Subject tokens
    • Mint a subject token
    • Revoke a subject's tokens
  • Sites
    • List a subject's sites
    • Create a site for a subject
    • Get a site
    • Apply a batch of file changes
    • Delete a site
    • List a site's files
    • Read one file's content
  • Usage
    • Per-subject usage for a period
  • Webhooks
    • List webhook endpoints
    • Register a webhook endpoint
    • Get a webhook endpoint
    • Update a webhook endpoint
    • Delete a webhook endpoint
    • Rotate an endpoint's signing secret
    • List deliveries (the delivery log)
    • Replay a delivery
    • Poll event history (no endpoint required)
  • Schemas
    • UploadCreateForm
    • PlatformSubject
    • UploadUpdateForm
    • SubjectCreateRequest
    • SubdomainName
    • SubjectPatchRequest
    • RenamePageRequest
    • SubjectMintRequest
    • CreateLinkRequest
    • SubjectEnvelope
    • UpdateLinkRequest
    • SubjectListEnvelope
    • BulkDeletePagesRequest
    • SubjectDeleteEnvelope
    • BulkLinkActionRequest
    • SubjectMintEnvelope
    • ClickPoint
    • SubjectRevokeEnvelope
    • DisplayMode
    • Site
    • SetDisplayModeRequest
    • SiteCreateRequest
    • SetPasswordRequest
    • SitePatchRequest
    • SetEmailGateRequest
    • SiteFile
    • EmailCapture
    • SiteEnvelope
    • ConnectDomainRequest
    • SiteListEnvelope
    • RebindDomainRequest
    • SitePatchEnvelope
    • DomainConnection
    • SiteDeleteEnvelope
    • SiteFilesEnvelope
    • DomainSearchResult
    • UsageSubject
    • SiteFileContentEnvelope
    • LinkCode
    • UsageSubjectsEnvelope
    • ExpiryOption
    • WebhookEventType
    • ApiPage
    • WebhookEndpoint
    • ShortLink
    • WebhookEndpointCreateRequest
    • AccountInfo
    • WebhookEndpointPatchRequest
    • TeamMember
    • WebhookEndpointEnvelope
    • SeatUsage
    • WebhookEndpointSecretEnvelope
    • InviteMemberRequest
    • WebhookEndpointListEnvelope
    • UpdateMemberRoleRequest
    • WebhookEndpointDeleteEnvelope
    • ResendCooldownError
    • WebhookDelivery
    • UploadResult
    • WebhookDeliveryListEnvelope
    • HostResult
    • WebhookReplayEnvelope
    • DeleteResult
    • WebhookEvent
    • UpgradeNudge
    • WebhookEventListEnvelope
    • UploadResultEnvelope
    • Error
    • PageEnvelope
    • PagesListEnvelope
    • HostEnvelope
    • DeleteEnvelope
    • ProjectFile
    • LinkEnvelope
    • ProjectFilesEnvelope
    • LinksListEnvelope
    • AccountEnvelope
    • TeamMembersEnvelope
    • TeamMemberEnvelope
    • RevokeMemberEnvelope
    • BulkAffectedEnvelope
    • BulkDeletedEnvelope
    • PagePasswordStateEnvelope
    • ClickSeriesEnvelope
    • PagePasswordResultEnvelope
    • EmailGateStateEnvelope
    • EmailGateUpdatedEnvelope
    • EmailGateDisabledEnvelope
    • CapturesEnvelope
    • DisplayModeStateEnvelope
    • DisplayModeResultEnvelope
    • DeleteCapturesRequest
    • CapturesDeletedEnvelope
    • DomainConnectionEnvelope
    • DomainDeletedEnvelope
    • ChatAvailabilityEnvelope
    • DomainSearchEnvelope
    • DomainsListEnvelope
    • OAuthError
    • OAuthAuthorizationServerMetadata
    • OAuthProtectedResourceMetadata
    • OAuthClientRegistrationRequest
    • OAuthClientRegistrationResponse
    • OAuthTokenRequest
    • OAuthTokenResponse
  1. Team

Change a team member's role

PATCH
/account/members/{id}
Change an existing collaborator's role (promote or demote) without
revoke-and-re-invite. role must be admin, member, or viewer
(never owner). Only a non-revoked member (invited or active) can be
re-roled; an unknown, revoked, or not-yours member id returns 404.
Changing a role does not affect seat usage and sends no email.

Request

Authorization
API Key
Add parameter in header
x-api-key
Example:
x-api-key: ********************
or
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Path Params

Body Params application/jsonRequired

Examples

Responses

🟢200OK
application/json
The collaborator with their updated role.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
🟠429TooManyRequests
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request PATCH 'https://upload.tf/api/v1/account/members/b3f1c2d4-5678-4abc-9def-0123456789ab' \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "role": "admin"
}'
Response Response Example
200 - Example 1
{
    "success": true,
    "data": {
        "member": {
            "id": "b3f1c2d4-5678-4abc-9def-0123456789ab",
            "email": "user@example.com",
            "role": "admin",
            "status": "invited",
            "createdAt": "2019-08-24T14:15:22.123Z",
            "inviteExpiresAt": "2019-08-24T14:15:22.123Z",
            "acceptedAt": "2019-08-24T14:15:22.123Z",
            "updatedAt": "2019-08-24T14:15:22.123Z",
            "seatLockedAt": "2019-08-24T14:15:22.123Z"
        }
    }
}
Modified at 2026-08-08 15:20:28
Previous
Revoke a team member
Next
Resend a pending invite
Built with