Unisson customers API
The customers API from Unisson — 47 operation(s) for customers.
The customers API from Unisson — 47 operation(s) for customers.
openapi: 3.1.0
info:
title: Unisson agent-evals customers API
version: 1.0.0
tags:
- name: customers
paths:
/api/v1/customers:
post:
tags:
- customers
summary: Create Customer
description: Create a new customer.
operationId: create_customer_api_v1_customers_post
security:
- HTTPBearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- customers
summary: List Customers
description: List customers with pagination and filters.
operationId: list_customers_api_v1_customers_get
security:
- HTTPBearer: []
parameters:
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
title: Page
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
default: 20
title: Page Size
- name: status_filter
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Status Filter
- name: owner_filter
in: query
required: false
schema:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Owner Filter
- name: search
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Search
- name: sort_by
in: query
required: false
schema:
type: string
pattern: ^(created_at|updated_at)$
default: created_at
title: Sort By
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/digest:
get:
tags:
- customers
summary: Get Customer Digest
description: Get a daily intelligence digest across all customers.
operationId: get_customer_digest_api_v1_customers_digest_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDigestResponse'
security:
- HTTPBearer: []
/api/v1/customers/chat/cross-customer:
post:
tags:
- customers
summary: Cross Customer Chat
description: 'Ask questions across all customers (portfolio-level insights).
Streams response via SSE.'
operationId: cross_customer_chat_api_v1_customers_chat_cross_customer_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CrossCustomerChatRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/customers/playbook-templates:
get:
tags:
- customers
summary: List Playbook Templates
description: List playbook templates for the organization.
operationId: list_playbook_templates_api_v1_customers_playbook_templates_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookTemplatesResponse'
security:
- HTTPBearer: []
post:
tags:
- customers
summary: Create Playbook Template
description: Create a playbook template with steps.
operationId: create_playbook_template_api_v1_customers_playbook_templates_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookTemplateCreate'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookTemplateResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/customers/playbook-templates/{template_id}:
delete:
tags:
- customers
summary: Delete Playbook Template
description: Soft-delete a playbook template.
operationId: delete_playbook_template_api_v1_customers_playbook_templates__template_id__delete
security:
- HTTPBearer: []
parameters:
- name: template_id
in: path
required: true
schema:
type: string
format: uuid
title: Template Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}:
get:
tags:
- customers
summary: Get Customer
description: Get a single customer with details.
operationId: get_customer_api_v1_customers__customer_id__get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDetailResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- customers
summary: Update Customer
description: Update a customer.
operationId: update_customer_api_v1_customers__customer_id__patch
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- customers
summary: Delete Customer
description: Soft-delete a customer.
operationId: delete_customer_api_v1_customers__customer_id__delete
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/meetings:
get:
tags:
- customers
summary: List Customer Meetings
description: List meetings for a customer.
operationId: list_customer_meetings_api_v1_customers__customer_id__meetings_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
title: Page
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 20
title: Page Size
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/calendar-events:
get:
tags:
- customers
summary: Get Customer Calendar Events
description: 'Get upcoming Google Calendar events relevant to a customer.
Same source of truth as the Meetings page Upcoming bucket: a live
fan-out across every per-user google_calendar token in the org,
deduped by Calendar event id, filtered by THIS customer''s target
emails/domains so the two views stay aligned.'
operationId: get_customer_calendar_events_api_v1_customers__customer_id__calendar_events_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: days_ahead
in: query
required: false
schema:
type: integer
maximum: 60
minimum: 1
default: 14
title: Days Ahead
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/tasks:
get:
tags:
- customers
summary: List Customer Tasks
description: List tasks for a customer.
operationId: list_customer_tasks_api_v1_customers__customer_id__tasks_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
title: Page
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 20
title: Page Size
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/conversations:
get:
tags:
- customers
summary: List Customer Conversations
description: 'Paginated list of chats that ever @-mentioned this customer.
Ordering uses ``chat_conversation_customers.first_mentioned_at DESC``
so the most recently introduced chat shows first. Response shape
matches ``GET /chat/conversations`` so the customer page can reuse
the home page''s conversation card directly.'
operationId: list_customer_conversations_api_v1_customers__customer_id__conversations_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
title: Page
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 20
title: Page Size
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ChatConversationListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/summary:
get:
tags:
- customers
summary: Get Customer Summary
description: Get AI-generated customer summary.
operationId: get_customer_summary_api_v1_customers__customer_id__summary_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: regenerate
in: query
required: false
schema:
type: boolean
default: false
title: Regenerate
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerSummaryResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/timeline:
get:
tags:
- customers
summary: Get Customer Timeline
description: Get customer timeline events.
operationId: get_customer_timeline_api_v1_customers__customer_id__timeline_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerTimelineResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/risks:
get:
tags:
- customers
summary: Get Customer Risks
description: Get active risks for a customer.
operationId: get_customer_risks_api_v1_customers__customer_id__risks_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerRisksResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/risks/detect:
post:
tags:
- customers
summary: Detect Customer Risks
description: Run risk detection for a customer.
operationId: detect_customer_risks_api_v1_customers__customer_id__risks_detect_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerRisksResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/generate-report:
post:
tags:
- customers
summary: Generate Customer Report
description: Generate a stakeholder report for the customer and return as PDF.
operationId: generate_customer_report_api_v1_customers__customer_id__generate_report_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/onboarding-brief:
post:
tags:
- customers
summary: Generate Onboarding Brief
description: Generate an onboarding brief for new team members joining this customer.
operationId: generate_onboarding_brief_api_v1_customers__customer_id__onboarding_brief_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/send-report:
post:
tags:
- customers
summary: Send Customer Report
description: Send the customer report to stakeholders via email.
operationId: send_customer_report_api_v1_customers__customer_id__send_report_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
title: Emails
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/playbooks:
get:
tags:
- customers
summary: List Playbooks
description: List playbooks for a customer.
operationId: list_playbooks_api_v1_customers__customer_id__playbooks_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybooksResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- customers
summary: Create Playbook
description: Create a new playbook with steps. Optionally clone from a template.
operationId: create_playbook_api_v1_customers__customer_id__playbooks_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/playbooks/{playbook_id}/steps:
post:
tags:
- customers
summary: Add Playbook Step
description: Add a step to a playbook.
operationId: add_playbook_step_api_v1_customers__customer_id__playbooks__playbook_id__steps_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: playbook_id
in: path
required: true
schema:
type: string
format: uuid
title: Playbook Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookStepCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PlaybookStepResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/playbooks/{playbook_id}/steps/{step_id}:
patch:
tags:
- customers
summary: Toggle Playbook Step
description: Toggle a playbook step's completion status.
operationId: toggle_playbook_step_api_v1_customers__customer_id__playbooks__playbook_id__steps__step_id__patch
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: playbook_id
in: path
required: true
schema:
type: string
format: uuid
title: Playbook Id
- name: step_id
in: path
required: true
schema:
type: string
format: uuid
title: Step Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- customers
summary: Delete Playbook Step
description: Delete a playbook step.
operationId: delete_playbook_step_api_v1_customers__customer_id__playbooks__playbook_id__steps__step_id__delete
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: playbook_id
in: path
required: true
schema:
type: string
format: uuid
title: Playbook Id
- name: step_id
in: path
required: true
schema:
type: string
format: uuid
title: Step Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/playbooks/{playbook_id}:
delete:
tags:
- customers
summary: Delete Playbook
description: 'Hard-delete a playbook. Cascades to its steps via the
``ondelete=''CASCADE''`` FK on ``playbook_steps.playbook_id``.'
operationId: delete_playbook_api_v1_customers__customer_id__playbooks__playbook_id__delete
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: playbook_id
in: path
required: true
schema:
type: string
format: uuid
title: Playbook Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/meeting-prep:
get:
tags:
- customers
summary: Get Meeting Prep
description: Return the persisted prep for one upcoming meeting, or null if none yet.
operationId: get_meeting_prep_api_v1_customers__customer_id__meeting_prep_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: calendar_event_id
in: query
required: true
schema:
type: string
minLength: 1
title: Calendar Event Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/MeetingPrepResponse'
- type: 'null'
title: Response Get Meeting Prep Api V1 Customers Customer Id Meeting Prep Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- customers
summary: Generate Meeting Prep
description: Manually (re)generate prep for one upcoming meeting in this customer.
operationId: generate_meeting_prep_api_v1_customers__customer_id__meeting_prep_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingPrepRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingPrepResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/meetings/{meeting_id}/follow-ups:
post:
tags:
- customers
summary: Generate Meeting Followups
description: Generate follow-up action items from a meeting transcript as tasks.
operationId: generate_meeting_followups_api_v1_customers__customer_id__meetings__meeting_id__follow_ups_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
- name: meeting_id
in: path
required: true
schema:
type: string
format: uuid
title: Meeting Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/integrations:
get:
tags:
- customers
summary: List Customer Integrations
description: List all integration configs for a customer.
operationId: list_customer_integrations_api_v1_customers__customer_id__integrations_get
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomerIntegrationConfigResponse'
title: Response List Customer Integrations Api V1 Customers Customer Id Integrations Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customers/{customer_id}/integrations/grafana:
post:
tags:
- customers
summary: Link Grafana Dashboard
description: Link a Grafana dashboard to a customer.
operationId: link_grafana_dashboard_api_v1_customers__customer_id__integrations_grafana_post
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GrafanaLinkRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerIntegrationConfigResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- customers
summary: Update Grafana Config
description: Update Grafana integration config (alert rules).
operationId: update_grafana_config_api_v1_customers__customer_id__integrations_grafana_patch
security:
- HTTPBearer: []
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
format: uuid
title: Customer Id
requestBody:
required: tr
# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unisson/refs/heads/main/openapi/unisson-customers-api-openapi.yml