Clients

Understanding clients

In InboxComponents, everything is scoped to a Client—an isolated environment that ensures complete separation of data between tenants. This is not optional—it’s a core security feature of the platform.

Why clients?

  • Secure by design: Every account, message, and component is tied to a client. There is no way for users to access data from other clients.

  • Perfect for SaaS: Each tenant or customer in your SaaS platform gets their own client environment.

  • Zero data leakage: Conversations and connected accounts are completely sandboxed per client.

  • Fully managed: Clients can be created and maintained via the dashboard UI or API

This design makes it safe to embed components in tools where users can connect their own accounts—without risk of exposing data to other users.

How It Works

  1. You create a Client via the dashboard or using the API.

  2. When rendering a component, you pass the associated clientId (along with componentId and your API key) to request a token.

  3. All messaging activity—receiving, sending, viewing—is only visible to that client.

  4. Even if multiple clients share the same component, their data remains fully isolated.

API documentation

List clients

get

Returns all clients (tenants) registered in the system.

Authorizations
X-API-KEYstringRequired

Your API key, available from the dashboard

Query parameters
pageintegerOptional

The collection page number

Default: 1
Responses
200

Client collection

get
/api/clients
GET /api/clients HTTP/1.1
Host: app.inboxcomponents.com
X-API-KEY: YOUR_API_KEY
Accept: */*
200

Client collection

{
  "member": [
    {
      "@context": "text",
      "@id": "text",
      "@type": "text",
      "name": "Company X",
      "website": "https://example.com",
      "createdAt": "2025-03-27T15:00:49+00:00",
      "updatedAt": null,
      "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
    }
  ],
  "totalItems": 1,
  "view": {
    "@id": "string",
    "type": "string",
    "first": "string",
    "last": "string",
    "previous": "string",
    "next": "string"
  },
  "search": {
    "@type": "text",
    "template": "text",
    "variableRepresentation": "text",
    "mapping": [
      {
        "@type": "text",
        "variable": "text",
        "property": null,
        "required": true
      }
    ]
  }
}

Create client

post

Registers a new client (tenant) in the platform

Authorizations
X-API-KEYstringRequired

Your API key, available from the dashboard

Body

Represents a tenant or customer using the inbox platform. Each client has its own connected accounts.

namestring | nullRequired
websitestring | nullOptional
Responses
post
/api/clients
POST /api/clients HTTP/1.1
Host: app.inboxcomponents.com
X-API-KEY: YOUR_API_KEY
Content-Type: application/ld+json
Accept: */*
Content-Length: 28

{
  "name": null,
  "website": null
}
{
  "@context": "text",
  "@id": "text",
  "@type": "text",
  "name": "Company X",
  "website": "https://example.com",
  "createdAt": "2025-03-27T15:00:49+00:00",
  "updatedAt": null,
  "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
}

Get client details

get

Retrieves detailed information for a single client.

Authorizations
X-API-KEYstringRequired

Your API key, available from the dashboard

Path parameters
idstringRequired

Client identifier

Responses
200

Client resource

get
/api/clients/{id}
GET /api/clients/{id} HTTP/1.1
Host: app.inboxcomponents.com
X-API-KEY: YOUR_API_KEY
Accept: */*
{
  "@context": "text",
  "@id": "text",
  "@type": "text",
  "name": "Company X",
  "website": "https://example.com",
  "createdAt": "2025-03-27T15:00:49+00:00",
  "updatedAt": null,
  "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
}

Replace client

put

Replaces the full client resource with new data.

Authorizations
X-API-KEYstringRequired

Your API key, available from the dashboard

Path parameters
idstringRequired

Client identifier

Body

Represents a tenant or customer using the inbox platform. Each client has its own connected accounts.

@contextone ofRead-onlyOptional
stringOptional
or
@idstringRead-onlyOptional
@typestringRead-onlyOptional
namestring | nullRequiredExample: Company X
websitestring | nullOptionalExample: https://example.com
createdAtstring | nullOptionalExample: 2025-03-27T15:00:49+00:00
updatedAtstring | nullOptional
idstring | nullOptionalExample: e6a2e786-2ce0-444a-b08c-ca21ed816bf0
Responses
200

Client resource updated

put
/api/clients/{id}
PUT /api/clients/{id} HTTP/1.1
Host: app.inboxcomponents.com
X-API-KEY: YOUR_API_KEY
Content-Type: application/ld+json
Accept: */*
Content-Length: 153

{
  "name": "Company X",
  "website": "https://example.com",
  "createdAt": "2025-03-27T15:00:49+00:00",
  "updatedAt": null,
  "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
}
{
  "@context": "text",
  "@id": "text",
  "@type": "text",
  "name": "Company X",
  "website": "https://example.com",
  "createdAt": "2025-03-27T15:00:49+00:00",
  "updatedAt": null,
  "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
}

Update client

patch

Updates one or more fields for an existing client.

Authorizations
X-API-KEYstringRequired

Your API key, available from the dashboard

Path parameters
idstringRequired

Client identifier

Body

Represents a tenant or customer using the inbox platform. Each client has its own connected accounts.

namestring | nullRequiredExample: Company X
websitestring | nullOptionalExample: https://example.com
createdAtstring | nullOptionalExample: 2025-03-27T15:00:49+00:00
updatedAtstring | nullOptional
idstring | nullOptionalExample: e6a2e786-2ce0-444a-b08c-ca21ed816bf0
Responses
200

Client resource updated

patch
/api/clients/{id}
PATCH /api/clients/{id} HTTP/1.1
Host: app.inboxcomponents.com
X-API-KEY: YOUR_API_KEY
Content-Type: application/merge-patch+json
Accept: */*
Content-Length: 153

{
  "name": "Company X",
  "website": "https://example.com",
  "createdAt": "2025-03-27T15:00:49+00:00",
  "updatedAt": null,
  "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
}
{
  "@context": "text",
  "@id": "text",
  "@type": "text",
  "name": "Company X",
  "website": "https://example.com",
  "createdAt": "2025-03-27T15:00:49+00:00",
  "updatedAt": null,
  "id": "e6a2e786-2ce0-444a-b08c-ca21ed816bf0"
}

Last updated

Was this helpful?