API reference

Team

Read agents and teams so you can assign conversations.

Every request needs x-tenant-id and an API key or OAuth token. Channel IDs are copied from Settings → Developer in the app. See Authentication.

List agents

get/api/public/v1/agents

People in this workspace. Deleted users are excluded.

Query parameters

  • pageinteger

    Page number (default 1).

  • limitinteger

    Page size (default 25, max 100).

  • searchstring

    Case-insensitive text search.

  • statusstring

    ACTIVE, INVITED, INACTIVE, or SUSPENDED (case-insensitive).

  • teamIdstring

    Only members of this team.

Response 200Paginated list of agents
  • successboolean
  • dataobject[]
    10 child fields
    • idstring

      Use as `assignedAgentId` on contacts and conversations.

    • namestring | null
    • firstNamestring | null
    • lastNamestring | null
    • emailstring | null
    • statusstring | null

      One ofACTIVEINVITEDINACTIVESUSPENDEDnull

    • departmentstring | null
    • designationstring | null
    • createdAtstring (date-time) | null
    • updatedAtstring (date-time) | null
  • paginationobject
    8 child fields
    • pageinteger
    • limitinteger
    • totalinteger
    • totalPagesinteger
    • hasNextPageboolean
    • hasPrevPageboolean
    • nextCursorstring | null
    • prevCursorstring | null
  • metaobject
    1 child field
    • apiVersionstring
  • requestIdstring | null
  • timestampstring (date-time)

Errors

  • 400Malformed request or missing tenant context
  • 401Missing or invalid API key / access token
  • 403Forbidden — plan, scope, key status, or tenant mismatch
  • 422Validation failed
  • 429Too many requests — rate limit exceeded
  • 500Unexpected server error
Error envelope and fixes →
curl -X GET "https://api.inaiy.com/api/public/v1/agents" \
  -H "x-tenant-id: demo" \
  -H "x-api-key: wp_live_xxxxxxxxxxxxxxxxxxxx"
Response 200
{
  "success": true,
  "data": [
    {
      "id": "6650a1b2c3d4e5f6a7b8c9d5",
      "name": "Priya Raman",
      "firstName": "Priya",
      "lastName": "Raman",
      "email": "priya@example.com",
      "status": "ACTIVE",
      "department": "Support",
      "designation": "Agent",
      "createdAt": "2026-07-12T09:30:00.000Z",
      "updatedAt": "2026-07-12T09:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 25,
    "total": 3,
    "totalPages": 1,
    "hasNextPage": false,
    "hasPrevPage": false,
    "nextCursor": null,
    "prevCursor": null
  },
  "meta": {
    "apiVersion": "v1"
  },
  "requestId": "string",
  "timestamp": "2026-07-12T09:30:00.000Z"
}

Get an agent

get/api/public/v1/agents/{id}

Path parameters

  • idstringrequired

    24-char id

Response 200The agent
  • successboolean
  • dataobject
    10 child fields
    • idstring

      Use as `assignedAgentId` on contacts and conversations.

    • namestring | null
    • firstNamestring | null
    • lastNamestring | null
    • emailstring | null
    • statusstring | null

      One ofACTIVEINVITEDINACTIVESUSPENDEDnull

    • departmentstring | null
    • designationstring | null
    • createdAtstring (date-time) | null
    • updatedAtstring (date-time) | null
  • metaobject
    1 child field
    • apiVersionstring
  • requestIdstring | null
  • timestampstring (date-time)

Errors

  • 400Malformed request or missing tenant context
  • 401Missing or invalid API key / access token
  • 403Forbidden — plan, scope, key status, or tenant mismatch
  • 404Resource not found
  • 422Validation failed
  • 429Too many requests — rate limit exceeded
  • 500Unexpected server error
Error envelope and fixes →
curl -X GET "https://api.inaiy.com/api/public/v1/agents/6650a1b2c3d4e5f6a7b8c9d0" \
  -H "x-tenant-id: demo" \
  -H "x-api-key: wp_live_xxxxxxxxxxxxxxxxxxxx"
Response 200
{
  "success": true,
  "data": {
    "id": "6650a1b2c3d4e5f6a7b8c9d5",
    "name": "Priya Raman",
    "firstName": "Priya",
    "lastName": "Raman",
    "email": "priya@example.com",
    "status": "ACTIVE",
    "department": "Support",
    "designation": "Agent",
    "createdAt": "2026-07-12T09:30:00.000Z",
    "updatedAt": "2026-07-12T09:30:00.000Z"
  },
  "meta": {
    "apiVersion": "v1"
  },
  "requestId": "string",
  "timestamp": "2026-07-12T09:30:00.000Z"
}

List teams

get/api/public/v1/teams

Teams in this workspace with their member agent ids, sorted by name.

Query parameters

  • pageinteger

    Page number (default 1).

  • limitinteger

    Page size (default 25, max 100).

  • searchstring

    Case-insensitive text search.

Response 200Paginated list of teams
  • successboolean
  • dataobject[]
    9 child fields
    • idstring

      Use as `primaryTeamId` on contacts.

    • namestring | null
    • descriptionstring | null
    • statusstring | null
    • managerIdstring | null
    • memberIdsstring[]
    • memberCountinteger
    • createdAtstring (date-time) | null
    • updatedAtstring (date-time) | null
  • paginationobject
    8 child fields
    • pageinteger
    • limitinteger
    • totalinteger
    • totalPagesinteger
    • hasNextPageboolean
    • hasPrevPageboolean
    • nextCursorstring | null
    • prevCursorstring | null
  • metaobject
    1 child field
    • apiVersionstring
  • requestIdstring | null
  • timestampstring (date-time)

Errors

  • 400Malformed request or missing tenant context
  • 401Missing or invalid API key / access token
  • 403Forbidden — plan, scope, key status, or tenant mismatch
  • 422Validation failed
  • 429Too many requests — rate limit exceeded
  • 500Unexpected server error
Error envelope and fixes →
curl -X GET "https://api.inaiy.com/api/public/v1/teams" \
  -H "x-tenant-id: demo" \
  -H "x-api-key: wp_live_xxxxxxxxxxxxxxxxxxxx"
Response 200
{
  "success": true,
  "data": [
    {
      "id": "6650a1b2c3d4e5f6a7b8c9d4",
      "name": "Support",
      "description": "Tier 1 support",
      "status": "ACTIVE",
      "managerId": "6650a1b2c3d4e5f6a7b8c9d5",
      "memberIds": [
        "6650a1b2c3d4e5f6a7b8c9d5"
      ],
      "memberCount": 1,
      "createdAt": "2026-07-12T09:30:00.000Z",
      "updatedAt": "2026-07-12T09:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 25,
    "total": 3,
    "totalPages": 1,
    "hasNextPage": false,
    "hasPrevPage": false,
    "nextCursor": null,
    "prevCursor": null
  },
  "meta": {
    "apiVersion": "v1"
  },
  "requestId": "string",
  "timestamp": "2026-07-12T09:30:00.000Z"
}

Get a team

get/api/public/v1/teams/{id}

Path parameters

  • idstringrequired

    24-char id

Response 200The team
  • successboolean
  • dataobject
    9 child fields
    • idstring

      Use as `primaryTeamId` on contacts.

    • namestring | null
    • descriptionstring | null
    • statusstring | null
    • managerIdstring | null
    • memberIdsstring[]
    • memberCountinteger
    • createdAtstring (date-time) | null
    • updatedAtstring (date-time) | null
  • metaobject
    1 child field
    • apiVersionstring
  • requestIdstring | null
  • timestampstring (date-time)

Errors

  • 400Malformed request or missing tenant context
  • 401Missing or invalid API key / access token
  • 403Forbidden — plan, scope, key status, or tenant mismatch
  • 404Resource not found
  • 422Validation failed
  • 429Too many requests — rate limit exceeded
  • 500Unexpected server error
Error envelope and fixes →
curl -X GET "https://api.inaiy.com/api/public/v1/teams/6650a1b2c3d4e5f6a7b8c9d0" \
  -H "x-tenant-id: demo" \
  -H "x-api-key: wp_live_xxxxxxxxxxxxxxxxxxxx"
Response 200
{
  "success": true,
  "data": {
    "id": "6650a1b2c3d4e5f6a7b8c9d4",
    "name": "Support",
    "description": "Tier 1 support",
    "status": "ACTIVE",
    "managerId": "6650a1b2c3d4e5f6a7b8c9d5",
    "memberIds": [
      "6650a1b2c3d4e5f6a7b8c9d5"
    ],
    "memberCount": 1,
    "createdAt": "2026-07-12T09:30:00.000Z",
    "updatedAt": "2026-07-12T09:30:00.000Z"
  },
  "meta": {
    "apiVersion": "v1"
  },
  "requestId": "string",
  "timestamp": "2026-07-12T09:30:00.000Z"
}