Skip to content
Docs

API reference / Operations by tag

workspaces

Operations tagged workspaces.

3 operations. Base URL https://api.metrixed.com/v1; see authentication, errors and pagination.

Operations

MethodPathSummary
POST/workspaces/signupPublic: start a workspace signup; mails a verification link (48 h) to the admin portal. 202 whether or not the email already has an account; honeypot, per-IP and per-email limits
GET/workspaces/slug-checkPublic: is a workspace address available (reason invalid|reserved|taken)
POST/workspaces/verifyPublic: verify the signup email: creates the workspace (trial), owner admin, security defaults, portal hosts and subscription, then signs the owner in (session cookie)

POST /workspaces/signup

Public: start a workspace signup; mails a verification link (48 h) to the admin portal. 202 whether or not the email already has an account; honeypot, per-IP and per-email limits

Operation postWorkspacesSignup. Auth: none (public endpoint).

Request body (application/json, required): WorkspaceSignup

FieldTypeFlagsDescription
companystringrequired
namestringrequiredowner name
emailstring (email)required
passwordstringrequired12+ characters
slugstringrequiredworkspace address: 3-40 of a-z 0-9 -
modesarray of enum: network, program, app_attribution, media_buying, igaming, lead_gen
data_regionenum: us, eu, in, ap
sample_databoolean
localestring
websitestringhoneypot: leave empty
started_atintegerms epoch when the form rendered (browser signups)
StatusDescriptionBody
202okapplication/json WorkspaceSignupAccepted
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/workspaces/signup' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"company":"","name":"","email":"user@example.com","password":"","slug":""}'

Example 202 response:

json
{
  "ok": false,
  "email": "",
  "expires_in_hours": 0
}

GET /workspaces/slug-check

Public: is a workspace address available (reason invalid|reserved|taken)

Operation getWorkspacesSlugCheck. Auth: none (public endpoint).

ParameterInTypeRequiredDescription
slugquerystringyes
StatusDescriptionBody
200okapplication/json WorkspaceSlugCheck
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/workspaces/slug-check' \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "slug": "",
  "available": false,
  "reason": ""
}

POST /workspaces/verify

Public: verify the signup email: creates the workspace (trial), owner admin, security defaults, portal hosts and subscription, then signs the owner in (session cookie)

Operation postWorkspacesVerify. Auth: none (public endpoint).

Request body (application/json, required): WorkspaceVerify

FieldTypeFlagsDescription
tokenstringrequired
StatusDescriptionBody
201okapplication/json WorkspaceVerified
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/workspaces/verify' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"token":""}'

Example 201 response:

json
{
  "tenant_id": "",
  "tenant_slug": "",
  "principal_type": "",
  "redirect": ""
}