Logo
Search
Docs

Workspace invitations preview

GET https://app.sulus.ai/api/workspace-invitations/{token}

Preview an invitation link (public)

Authentication

Send a bearer token created on your dashboard's Developer page:

Authorization: Bearer <YOUR_API_KEY>

Path parameters

token string Required

Opaque token (hashed server-side for lookup).

Validation: plain invitation token from the email link

Errors

StatusMeaningBody
422 Invalid, accepted, or expired token {"message":"The given data was invalid.","errors":{"token":["This invitation link is invalid."]}}
403 Feature workspaces not enabled {"message":"This feature is not enabled for your account. Please contact your administrator.","feature":"workspaces"}

Notes

  • Reseller middleware only; Sanctum not required.
  • requires_registration / requires_login are mutually informative based on whether that email already has an account in the reseller.
  • Other token messages: This invitation has already been accepted.; This invitation has expired.
curl --request GET \
  --url https://app.sulus.ai/api/workspace-invitations/{token} \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/workspace-invitations/{token}"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}

response = requests.get(url, headers=headers)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://app.sulus.ai/api/workspace-invitations/{token}"
	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
Response 200
{
    "data": {
        "workspace_name": "Jane's Workspace",
        "inviter_name": "Jane Cooper",
        "role": "member",
        "email": "[email protected]",
        "expires_at": "2026-08-06T12:00:00.000000Z",
        "requires_registration": true,
        "requires_login": false
    }
}