1. Sites
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
    • Invite a team member
    • Revoke a team member
    • Change a team member's role
    • Resend a pending invite
  • 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
      GET
    • Create a site for a subject
      POST
    • Get a site
      GET
    • Apply a batch of file changes
      PATCH
    • Delete a site
      DELETE
    • List a site's files
      GET
    • Read one file's content
      GET
  • 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. Sites

Create a site for a subject

POST
/subjects/{subject}/sites
Creates a hosted site (kind site) for this one subject, from
EITHER a multipart/form-data body with a file field (a .zip)
OR an application/json body — see this document's top-level
"Hosted sites" section. Runs through the same content-screening and
plan-cap gates as any other hosted-site upload.
A subject TOKEN may never set name (or a multipart name field):
refused with 400. A platform KEY may.
Requires a declared Content-Length header — refused with 411 if
absent, stricter than the rest of this API (see LengthRequired).
Refused with 403 if the subject is not in good standing (see
Forbidden).

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/json
Required

Examples

Responses

🟢201Created
application/json
The site was created.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
🟠411
🟠413
🟠429
🔴503Service Unavailable
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://upload.tf/api/v1/subjects/ext:end-user-42/sites' \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "name": "string",
    "files": [
        {
            "path": "string",
            "contentBase64": "string"
        }
    ]
}'
Response Response Example
201 - Example 1
{
    "success": true,
    "data": {
        "site": {
            "id": "string",
            "name": "string",
            "url": "string",
            "fileName": "string",
            "kind": "site",
            "sizeBytes": 0,
            "fileCount": 0,
            "createdAt": "2019-08-24T14:15:22.123Z",
            "expiresAt": "2019-08-24T14:15:22.123Z",
            "chatEnabled": true,
            "subjectId": "68460e63-0717-47f9-8fd8-d28f152cb30b"
        }
    }
}
Modified at 2026-08-18 09:08:48
Previous
List a subject's sites
Next
Get a site
Built with