1. Usage
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
    • 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
      GET
  • 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. Usage

Per-subject usage for a period

GET
/usage/subjects
Paginated per-subject feature-usage counts for one billing period.
PLATFORM-KEY ONLY — a subject token is rejected with 403, the same
as every other endpoint on this surface that isn't GET /subjects/{subject}/sites or a sites operation: this is an
account-wide report across ALL of your end-users, not something one
end-user's own token may read.
REPORTING ONLY. upload.tf bills your platform ACCOUNT (one Polar
customer per account); it never bills, meters overage against, or
creates a Polar customer for an individual subject. This endpoint
exists solely so you can see which of your subjects drove usage, in
order to rebill them yourself. Only FLOW meters are ever reported per
subject — today, site_build. The stock hosted_site meter (live
hosted-site count) is a whole-ACCOUNT high-water-mark gauge with no
per-subject breakdown to report here; if you need one subject's
current site count, count the results of GET /subjects/{subject}/sites instead.
Pagination is a KEYSET cursor (nextCursor), not offset-based —
opaque, pass it back as ?cursor= to fetch the next page. Absent
nextCursor (null) means you've reached the last page.

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
Query Params

Responses

🟢200OK
application/json
A page of per-subject usage counts.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠429
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://upload.tf/api/v1/usage/subjects?period=2026-08&cursor=undefined&limit=undefined' \
--header 'x-api-key: <api-key>'
Response Response Example
200 - Example 1
{
    "success": true,
    "data": {
        "period": "string",
        "subjects": [
            {
                "subjectId": "68460e63-0717-47f9-8fd8-d28f152cb30b",
                "externalId": "string",
                "features": {
                    "site_build": 42
                }
            }
        ],
        "limit": 0,
        "hasMore": true,
        "nextCursor": "string"
    }
}
Modified at 2026-08-18 09:08:48
Previous
Read one file's content
Next
List webhook endpoints
Built with