PatveroDocs
DocsDevelopers
Developers

Workspace integration endpoints

Read workspace data and securely create scheduled meetings through the scoped integration API.

#

Base URL

All production workspace integration requests use the versioned Patvero API base.

Production basetext
https://api.patvero.com/api/v1
#

Response envelope

Every successful request returns success, typed endpoint data, and request metadata. Nullable properties are explicitly marked in the OpenAPI contract.

Success envelopejson
{
  "success": true,
  "data": { "...": "endpoint-specific fields" },
  "meta": {
    "requestId": "8cc54804-bca5-4cb6-952a-538f0509a586",
    "correlationId": "8cc54804-bca5-4cb6-952a-538f0509a586",
    "timestamp": "2026-09-28T14:05:12.000Z"
  }
}
#

Read workspace identity

Requires workspace.read. The credential object contains safe identifying metadata, never the API key secret.

GET workspacebash
curl "https://api.patvero.com/api/v1/integrations/workspace" \
  -H "Authorization: Bearer $PATVERO_API_KEY"
Workspace datajson
{
  "workspace": {
    "id": "workspace_01JZP6J6EJH7YV4V58GSCFQYY1",
    "name": "Loga",
    "slug": "loga",
    "status": "active",
    "createdAt": "2026-08-01T15:30:00.000Z",
    "updatedAt": "2026-09-28T14:05:12.000Z"
  },
  "credential": {
    "id": "c4d9238d-8074-480b-a1a4-52006b775ed0",
    "name": "Faceless Angels production",
    "keyPrefix": "pv_live_c4d9238d",
    "scopes": ["workspace.read", "members.read"]
  }
}
#

Read active members

Requires members.read. Returns up to 1,000 active members ordered by display name. Email and avatarUrl can be null.

GET membersbash
curl "https://api.patvero.com/api/v1/integrations/workspace/members" \
  -H "Authorization: Bearer $PATVERO_API_KEY"
Members datajson
{
  "members": [
    {
      "id": "usr_ea6e70324a32bc39e08457901e09fb42",
      "displayName": "Henry Ford",
      "email": "henry@example.com",
      "avatarUrl": null,
      "role": "member",
      "status": "active",
      "joinedAt": "2026-08-12T17:45:00.000Z",
      "updatedAt": "2026-09-26T09:10:00.000Z"
    }
  ],
  "count": 1,
  "workspaceId": "workspace_01JZP6J6EJH7YV4V58GSCFQYY1"
}
#

Read meetings and projects

Use meetings.read or projects.read respectively.

GET meetingsbash
curl "https://api.patvero.com/api/v1/integrations/workspace/meetings" \
  -H "X-Patvero-API-Key: $PATVERO_API_KEY"
GET projectsbash
curl "https://api.patvero.com/api/v1/integrations/workspace/projects" \
  -H "X-Patvero-API-Key: $PATVERO_API_KEY"
Meetings datajson
{
  "meetings": [
    {
      "id": "45f0ed50-a4a6-4c5e-b918-f85f28ba588c",
      "title": "Weekly operations review",
      "description": "Review delivery priorities and blockers.",
      "meetingType": "scheduled",
      "scheduledStartAt": "2026-10-01T15:00:00.000Z",
      "scheduledDurationMinutes": 60,
      "timeZone": "America/Chicago",
      "status": "scheduled",
      "createdAt": "2026-09-20T18:00:00.000Z",
      "updatedAt": "2026-09-27T11:20:00.000Z"
    }
  ],
  "count": 1,
  "workspaceId": "workspace_01JZP6J6EJH7YV4V58GSCFQYY1"
}
Projects datajson
{
  "projects": [
    {
      "id": "682a2ddc-466d-4587-8756-06bdcd177c78",
      "key": "OPS",
      "name": "Operations launch",
      "description": "Prepare the operations team for launch.",
      "priority": "high",
      "status": "active",
      "color": "#3155df",
      "startDate": "2026-09-01",
      "targetDate": "2026-11-30",
      "createdAt": "2026-08-25T13:15:00.000Z",
      "updatedAt": "2026-09-28T12:40:00.000Z"
    }
  ],
  "count": 1,
  "workspaceId": "workspace_01JZP6J6EJH7YV4V58GSCFQYY1"
}
#

Create a meeting and get its join link

Requires meetings.write. Patvero creates the meeting through the same secure scheduling, entitlement, invitation, audit, and admission flow used by the app. The response contains the join URL, so the connected application does not need a copied Patvero link.

POST meetingbash
curl -X POST "https://api.patvero.com/api/v1/integrations/workspace/meetings" \
  -H "Authorization: Bearer $PATVERO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Idempotency-Key: faceless-request-01JZP9M2N6Z3" \
  -d '{
    "title": "Faceless Angels intake review",
    "description": "Review the submitted request with the applicant.",
    "scheduledStartAt": "2026-10-01T15:00:00.000Z",
    "timeZone": "America/Chicago",
    "durationMinutes": 45,
    "invitees": [{ "email": "applicant@example.com", "displayName": "Applicant name" }],
    "externalReference": "request_01JZP9M2N6Z3WJ6RS9XB5V2KQ8"
  }'
Created meeting datajson
{
  "id": "45f0ed50-a4a6-4c5e-b918-f85f28ba588c",
  "title": "Faceless Angels intake review",
  "joinUrl": "https://www.patvero.com/?room=abcde-fghij&prejoin=1",
  "joinCode": "abcde-fghij",
  "status": "scheduled",
  "scheduledStartAt": "2026-10-01T15:00:00.000Z",
  "durationMinutes": 45,
  "timeZone": "America/Chicago",
  "invitationCount": 1,
  "externalReference": "request_01JZP9M2N6Z3WJ6RS9XB5V2KQ8"
}
Existing key, no replacement required

A workspace owner can add meetings.write from Workspace → Developer API → Permissions. The pv_live_ key already stored by the integration remains the same.

#

Collection limits

These read-only endpoints currently return bounded collections rather than accepting pagination parameters.

  • Members: up to 1,000 active members.
  • Meetings: up to 250 meetings, newest first.
  • Projects: up to 500 workspace-visible projects, most recently updated first; private projects are excluded.
  • count is the number returned, not a separate total across hidden or excluded records.
Was this guide useful?

Tell us what was missing and include the page title.

Send feedback
Workspace integration endpoints — Patvero Docs