Workspaces

List, create, update and delete workspaces, and read a workspace's request logs and activity.

A workspace is one website with its connections, team and data. These endpoints need the workspaces scope.

List workspaces

GET /v1/workspaces

Every workspace the caller belongs to. A key bound to one workspace sees only that one.

{
  "data": [
    {
      "id": "8c1f4b2e-1a3d-4c55-9f0e-2b7d6a9c1e40",
      "name": "Your Brand",
      "slug": "your-brand",
      "type": "PERSONAL",
      "logo": null,
      "website": "https://yourbrand.com",
      "timezone": "UTC",
      "country": null,
      "description": null,
      "language": "en",
      "created_at": "2026-10-01T09:00:00.000Z",
      "updated_at": "2026-10-01T09:00:00.000Z"
    }
  ]
}

Create a workspace

POST /v1/workspaces
FieldRequiredNotes
nameYes1 to 255 characters
websiteYesThe website this workspace covers, up to 500 characters
typeNoOne of PERSONAL, TEAM, ORGANIZATION, CLIENT, PROJECT, DEPARTMENT, EVENT, TEMPORARY, COMMUNITY, BRAND, AGENCY. Defaults to PERSONAL
timezoneNoDefaults to UTC. Sets when email digests go out
languageNoDefaults to en
logo, country, descriptionNoOptional details

Answers 201 with the workspace in data. A 402 with workspace_limit means the account cannot hold another workspace. A 409 means the slug is already in use.

Get a workspace

GET /v1/workspaces/{id}

Update a workspace

PUT /v1/workspaces/{id}

Takes any of the fields above. Needs the workspace owner or admin role.

Delete a workspace

DELETE /v1/workspaces/{id}

Deletes the workspace. Needs the workspace owner role.

Request logs

GET /v1/logs?workspace_id={id}

Recent API requests against one workspace, newest first, with the route, status code, duration and any error message. Rows are kept for 30 days.

ParameterNotes
workspace_idRequired
days1 to 30, default 7
statussuccess or failed
method, status_codeFilter by HTTP method or status code
routeAn exact route pattern, such as /v1/webhooks/{id}
qMatches part of the path or message
limit1 to 200, default 50
beforeCursor: rows older than this id

The response holds the rows in data and, in meta, totals, error counts, buckets over time and has_more.

Activity

GET /v1/activity

What happened in a workspace, newest first: webhook deliveries, billing, and with kind=security, the audit log of members joining, leaving or changing role or access, and changes to two-step verification, passkeys, single sign-on and signed-in devices. Rows are kept for 90 days; security rows are never pruned.

ParameterNotes
workspace_idOptional. Omit it to read every workspace the caller belongs to
kindwebhook, billing or security
from, toISO 8601 date-times
limit1 to 100, default 50
cursormeta.next_cursor from the previous page
Related documentation
  • Overview

    Base URL, authentication, scopes, errors and rate limits for the RankDebug API.

  • API Keys and Scopes

    Create API keys, limit them with scopes and a workspace binding, and keep them safe.

  • Search

    Search Console performance, top rows, opportunities and sitemaps for a workspace.

  • Traffic

    Google Analytics landing pages, acquisition and measurement health, and CDN crawler traffic, error paths and firewall rules.

  • Deploys

    Record deploys from CI, list them, and read one deploy with its site check, crawl and search impact.

  • Site Crawls

    Read crawls of the workspace website, their findings, and every page of one finding.

  • Digests

    Read what the latest scheduled digest email for a workspace contained.

  • Reports

    Read the reports shared with a workspace, their comment threads, and their PDF.

Was this helpful?

On this page