Get Profile and Workspaces

Retrieve your profile and workspace details using your API key or OAuth token

Updated

GET
/v1/me
curl -X GET "https://api.orshot.com/v1/me" \
  -H "Authorization: Bearer <ORSHOT_API_KEY>"

Retrieve your user profile and associated workspaces. Works with both API keys and OAuth access tokens.

  • API Key: Returns the single workspace linked to the key
  • OAuth Token: Returns the workspaces the token has been granted access to that you still belong to

Endpoint#

Endpoint
https://api.orshot.com/v1/me

Request#

JavaScript
await fetch("https://api.orshot.com/v1/me", {
  method: "GET",
  headers: {
    Authorization: "Bearer <ORSHOT_API_KEY>",
  },
});
JSON
{
  "data": {
    "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "email": "user@example.com",
    "name": "John Doe",
    "workspaces": [
      {
        "id": 890,
        "name": "My Workspace",
        "slug": "my-workspace"
      }
    ],
    "plan": {
      "title": "Launch39",
      "type": "launch",
      "interval": "month",
      "is_trial": false,
      "render_credits": {
        "used": 320, "limit": 1500, "remaining": 1180,
        "unit": "1 credit = 1 image, 1 PDF page or 1 video second"
      },
      "ai_credits": {
        "used": 12, "limit": 300, "remaining": 288,
        "unit": "Shared by AI images, AI video and voiceovers",
        "image": { "allowed": true, "credits_per_image": 2 },
        "video": {
          "allowed": true, "speech": true,
          "max_clip_seconds": 15, "max_speech_seconds": 90,
          "credits_per_second": 3, "credits_per_second_full_hd": 6
        },
        "audio": {
          "allowed": true, "premium_voices": false,
          "max_chars_per_render": 5000, "byok": false,
          "credits_per_10s": 1, "premium_credits_per_10s": 2
        }
      },
      "limits": { "members": 2, "workspaces": 2, "rate_per_minute": 100 },
      "workflows": { "allowed": true, "max_steps": 5, "max_active_workflows": 3 },
      "embed": { "allowed": true },
      "video": { "allowed": true }
    }
  }
}

Response Fields#

FieldTypeDescription
user_idStringYour unique user ID
emailStringYour email address
nameStringYour full name
workspacesArrayList of workspaces accessible with this token
workspaces[].idNumberWorkspace ID
workspaces[].nameStringWorkspace name
workspaces[].slugStringWorkspace slug
planObjectYour current plan and live usage
plan.render_creditsObjectTemplate renders this period: used, limit, remaining. 1 credit = 1 image, 1 PDF page or 1 video second
plan.ai_creditsObjectAI generation this period: used, limit, remaining. One meter shared by AI images, AI video and voiceovers, with each capability nested below
plan.ai_credits.imageObjectallowed, credits_per_image
plan.ai_credits.videoObjectallowed, speech (speaking portraits), max_clip_seconds, max_speech_seconds, credits_per_second (HD), credits_per_second_full_hd
plan.ai_credits.audioObjectallowed, premium_voices, max_chars_per_render, byok (custom voice provider key), credits_per_10s, premium_credits_per_10s
plan.limitsObjectMember, workspace and rate limits
plan.workflowsObjectallowed, max_steps, max_active_workflows
plan.embedObjectWhether Orshot Embed is included
plan.videoObjectWhether video rendering is included

The same render_credits, ai_credits, limits, workflows, embed and video objects describe every tier in the public plan catalog at GET /v1/plans, without the used and remaining fields.

Reviewers#

A token that acts for a reviewer, like the Orshot MCP server once a reviewer connects it, answers with the reviewer's own user_id, email and name. plan is null, because reviewers don't see the workspace's plan or usage.

JSON
{
  "data": {
    "user_id": "6f1c3a8e-9b2d-4f70-a5e4-1d8b6c3f9a02",
    "email": "maya@clientco.com",
    "name": "Maya Chen",
    "workspaces": [{ "id": 890, "name": "Acme", "slug": "acme" }],
    "plan": null
  }
}

GET /v1/me/user_id also answers with the reviewer's own user_id, email and name.

After you leave a workspace#

With an OAuth token, this endpoint ignores the x-workspace-id header. If you're no longer a member of the token's first workspace, it answers for the first of its other workspaces you still belong to, and workspaces lists only the ones you can still reach. Send one of those IDs in the x-workspace-id header on your next calls.

Other endpoints aimed at a workspace you've left answer 403 with the code workspace_not_accessible, and so does this one when you belong to none of the token's workspaces. See Workspace Not Accessible.

Error Responses#

Unauthorized (401)#

Returned when using an expired or invalid OAuth token.

JSON
{
  "error": "Access Forbidden",
  "message": "Invalid or expired OAuth token",
  "code": "oauth_token_invalid"
}

Forbidden (403)#

Returned when the API key is missing or invalid.

JSON
{
  "error": "Access Forbidden"
}

Returned with an OAuth token when you no longer belong to any of its workspaces.

JSON
{
  "error": "Access Forbidden",
  "message": "You are no longer a member of this workspace, so this connection can't reach it. Ask an owner or admin to add you again.",
  "code": "workspace_not_accessible"
}
Was this page helpful?

Ready to automate?

Start rendering images, PDFs and videos from your templates in under 2 minutes. Free plan, no credit card.

Get your API key
  • Image, PDF and video generation via API
  • Visual editor with AI and smart layouts
  • Zapier, Make, MCP and 40+ integrations
  • White-label embed for your own app
  • 100 free credits a month, no credit card required