API Reference

Integrate One Rec into your workflow. Available on Pro plans.

Beta
The One Rec API is available to Pro subscribers. Endpoints may change before the stable release. HTTP endpoints are served from https://gregarious-dotterel-215.convex.site, not from this website.

Authentication

All API requests require a valid session token. Obtain one via the desktop auth flow or web session.

  • POSThttps://gregarious-dotterel-215.convex.site/api/desktop/create-auth-code

    Create a one-time auth code for desktop app authentication.

    Auth
    Session cookie
    Body
    { "sessionToken": "...", "codeChallenge": "<S256 PKCE challenge>" }
    Response
    { "code": "abc123" }
  • POSThttps://gregarious-dotterel-215.convex.site/api/desktop/exchange-code

    Exchange a one-time code for a session token and user info.

    Auth
    None
    Body
    { "code": "abc123", "codeVerifier": "<PKCE verifier>" }
    Response
    { "sessionToken": "...", "userId": "...", "email": "...", "name": "..." }

Plan & Export Validation

Check user plan limits and validate export parameters before rendering.

  • GEThttps://gregarious-dotterel-215.convex.site/api/desktop/plan

    Get the authenticated user's current plan and limits.

    Auth
    Session cookie
    Body
    None
    Response
    { "plan": "pro", "maxHeight": 2160, "watermark": false, "checkedAt": 1234567890 }
  • POSThttps://gregarious-dotterel-215.convex.site/api/desktop/validate-export

    Validate whether an export configuration is allowed under the user's plan.

    Auth
    Session cookie
    Body
    { "requestedMaxHeight": 1080 }
    Response
    { "allowed": true, "plan": "creator", "maxHeight": 1080, "watermark": false }

Shared Videos

Query and manage shared video links. Uses Convex client queries.

  • Querymedia/shared_videos:getSharedVideoMetadata

    Get metadata for a shared video by slug. Public endpoint.

    Auth
    None
    Body
    { "slug": "my-video" }
    Response
    { "title": "Demo Video", "description": "...", "thumbnailUrl": "..." }

Rate Limits

All API endpoints are rate-limited to prevent abuse.

  • INFORate limit headers

    When rate limited, responses include a Retry-After header indicating seconds until the limit resets.

    Auth
    N/A
    Body
    N/A
    Response
    HTTP 429 with Retry-After header