P
ProFormsDocs

Get Client

Retrieve full details of a single client, including assigned sites and activity stats.

clients.view
GET/v1/clients/:id

Example Request

curl
curl "https://proforms.io/api/v1/clients/c_abc123" \
  -H "Authorization: Bearer pf_your_api_key"

Response

200 OK
{
  "success": true,
  "data": {
    "id": "c_abc123",
    "name": "Acme Corp",
    "slug": "acme-corp",
    "logo": null,
    "color": "#10B981",
    "contactName": "Jane Smith",
    "contactEmail": "jane@acme.com",
    "contactPhone": "801-555-1234",
    "notes": "Enterprise client — monthly retainer",
    "isArchived": false,
    "archivedAt": null,
    "sites": [
      {
        "id": "s_xyz789",
        "name": "Main Website",
        "domain": "acme.com",
        "status": "active",
        "isActive": true,
        "formCount": 5,
        "submissionCount": 342
      },
      {
        "id": "s_xyz790",
        "name": "Landing Pages",
        "domain": "go.acme.com",
        "status": "active",
        "isActive": true,
        "formCount": 7,
        "submissionCount": 505
      }
    ],
    "stats": {
      "totalSites": 2,
      "totalForms": 12,
      "totalSubmissions": 847,
      "submissionsThisMonth": 63,
      "lastActivity": "2026-02-17T09:15:00.000Z"
    },
    "createdAt": "2026-01-10T10:00:00.000Z",
    "updatedAt": "2026-02-15T14:00:00.000Z"
  }
}

Assign Sites

Use the sites sub-resource to assign or reassign sites to a client. This replaces the current site assignments — sites not included are unlinked.

clients.edit
PUT/v1/clients/:id/sites

Request Body

siteUuidsstring[]

Array of site UUIDs to assign to this client

Example Request

curl
curl -X PUT "https://proforms.io/api/v1/clients/c_abc123/sites" \
  -H "Authorization: Bearer pf_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "siteUuids": ["s_xyz789", "s_xyz790"]
  }'

Response

200 OK
{
  "success": true,
  "data": {
    "assigned": 2
  }
}
⚠️
Passing an empty array unassigns all sites from the client. Sites not in the list will have their clientId set to null.