List active Vini products

List which Vini agents the rooftop bought, grouped by category.

GEThttps://api.spyne.ai/user-management/v1/vini/active-products
AuthBearer token (console user)Rate limitNot documentedProcessingSynchronous.

The API reads the rooftop's active products on active product lines in the Onboarding or Live stage. It groups the product names by category: sales, service, acquisition and reception. The category comes from the product registry. A product without a category falls back to a name match on "sales", "service" or "reception". A category key appears only when it has at least one product. Nothing is written.

Before you call it

  • Send Authorization: Bearer YOUR_TOKEN, the signed-in console user's session token.
  • You need the rooftop's teamId.
  • A product appears only when it is active and in the Onboarding or Live stage. A product that is only Contracted is not listed.
  • The call is synchronous. Rate limit: not documented.

Query parameters

Requiredalways send
Request checklist
  1. Authenticate: send Authorization: Bearer YOUR_TOKEN.
  2. Identify the rooftop: pass teamId as a query parameter.
  3. Read the agents: each product name in a category is the agent's segmentName. See the agent table in the Introduction.
ParameterTypeRequiredDescription
teamIdstringRequiredRooftop ID.

Sample request

curl -X GET "https://api.spyne.ai/user-management/v1/vini/active-products?teamId=<teamId>" \
  -H "Authorization: Bearer YOUR_TOKEN"
import requests

resp = requests.get(
    "https://api.spyne.ai/user-management/v1/vini/active-products",
    params={"teamId": "<teamId>"},
    headers={"Authorization": "Bearer YOUR_TOKEN"},
)
products = resp.json()
const res = await fetch(
  "https://api.spyne.ai/user-management/v1/vini/active-products?teamId=<teamId>",
  { headers: { Authorization: "Bearer YOUR_TOKEN" } }
);
const products = await res.json();

Sample response

{
  "sales": ["inboundSales", "outboundSales"],
  "service": ["inboundService"],
  "acquisition": ["acquisitionAiOutbound"],
  "reception": ["receptionWebChat"]
}
{}
{
  "message": "Invalid Token",
  "error": true,
  "code": "ERROR_AUTH_401",
  "details": "",
  "data": null
}
{
  "message": "Internal server error while fetching Vini active products",
  "error": "<error message>",
  "code": "",
  "details": null,
  "data": null
}

Response parameters (200)

The success body is a plain object. It is not wrapped in data.

ParameterTypeDescription
salesstring[]Active sales agents, for example inboundSales, outboundSales.
servicestring[]Active service agents, for example inboundService, outboundService.
acquisitionstring[]Active acquisition agents, for example acquisitionAiOutbound.
receptionstring[]Active receptionist product, receptionWebChat.
other keysstring[]Any other category set in the product registry. The key is the registry category with a trailing "Agent" removed, in lower case.

Errors

StatusCodeWhen it happens
400Missing parameterteamId is missing. The framework rejects the request.
401ERROR_AUTH_401Missing, malformed or invalid token.
500Server errorThe database read or the product registry call failed. error holds the error message.

What happens next

Use the product names to decide which agent checklists to show. Each name is the segmentName you read in the checklist and send when you mark agent tasks done. Then call Get the onboarding checklist.

This call comes after Get contract product lines.


Did this page help you?