{
  "openapi": "3.1.0",
  "info": {
    "title": "VINSI.AI API",
    "version": "1.0.0",
    "description": "REST API for VINSI.AI — AI phone agents, calls, phone numbers, tools, and voices. Authenticate with the x-api-key header. Full docs: https://docs.vinsi.ai/llms.txt"
  },
  "servers": [
    {
      "url": "https://dashboard.vinsi.ai"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/api/calls": {
      "get": {
        "summary": "Get Calls",
        "description": "Fetch a paged list of calls in your organization. Transcript and summary are not included here (use Get Call by ID); hasTranscript and hasSummary show whether they exist. Recording URLs are pre-signed and expire. Filters: direction (inbound | outbound | web | voicemail | no-answer | softphone), agentId, disposition, startDate and endDate (ISO dates), searchTerm, transcriptSearch, summarySearch, audited (audited | notAudited), favorites (true), excludeWebCalls (true), minDuration and maxDuration (seconds), batchId. Sort with sortField (default startTime) and sortDirection (asc | desc). pageSize defaults to 50, max 500.\n\nDocs: https://docs.vinsi.ai/api-docs/calls",
        "operationId": "calls",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "50"
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "inbound"
          },
          {
            "name": "agentId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "cmexampleagent000000000001"
          },
          {
            "name": "disposition",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "Appointment Booked"
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "2026-09-01"
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "2026-09-16"
          },
          {
            "name": "searchTerm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "5555550142"
          },
          {
            "name": "transcriptSearch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "cleaning"
          },
          {
            "name": "summarySearch",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "appointment"
          },
          {
            "name": "audited",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "notAudited"
          },
          {
            "name": "favorites",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "false"
          },
          {
            "name": "excludeWebCalls",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "false"
          },
          {
            "name": "minDuration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "30"
          },
          {
            "name": "maxDuration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "600"
          },
          {
            "name": "batchId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "startTime"
          },
          {
            "name": "sortDirection",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "desc"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "calls": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "agentName": {
                            "type": "string"
                          },
                          "agentNameRaw": {
                            "type": "string"
                          },
                          "softphone": {
                            "type": "boolean"
                          },
                          "callerUserName": {},
                          "callerUserEmail": {},
                          "agentId": {
                            "type": "string"
                          },
                          "incomingPhone": {
                            "type": "string"
                          },
                          "outgoingPhone": {
                            "type": "string"
                          },
                          "contact": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "integer"
                              },
                              "name": {
                                "type": "string"
                              },
                              "phone": {
                                "type": "string"
                              }
                            }
                          },
                          "variables": {
                            "type": "object",
                            "properties": {}
                          },
                          "duration": {
                            "type": "integer"
                          },
                          "disposition": {
                            "type": "string"
                          },
                          "dispositions": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "startTime": {
                            "type": "string"
                          },
                          "endTime": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "recordingUrl": {
                            "type": "string"
                          },
                          "completeRecordingUrl": {},
                          "transcript": {},
                          "summary": {},
                          "hasTranscript": {
                            "type": "boolean"
                          },
                          "hasSummary": {
                            "type": "boolean"
                          },
                          "audited": {
                            "type": "boolean"
                          },
                          "auditedBy": {},
                          "auditedByEmail": {},
                          "auditedByName": {},
                          "auditedAt": {},
                          "favorite": {
                            "type": "boolean"
                          },
                          "favoriteBy": {},
                          "favoriteByEmail": {},
                          "favoriteByName": {},
                          "favoriteAt": {},
                          "callScore": {},
                          "callScoreNotes": {},
                          "scoredAt": {},
                          "scoredBy": {},
                          "scoredByEmail": {},
                          "scoredByName": {},
                          "number": {
                            "type": "integer"
                          },
                          "comments": {},
                          "batchId": {},
                          "call_type": {
                            "type": "string"
                          },
                          "error": {},
                          "data": {
                            "type": "object",
                            "properties": {}
                          }
                        }
                      }
                    },
                    "pagination": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "pageSize": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "totalPages": {
                          "type": "integer"
                        },
                        "hasMore": {
                          "type": "boolean"
                        },
                        "totalInbounds": {
                          "type": "integer"
                        },
                        "totalOutbounds": {
                          "type": "integer"
                        },
                        "totalWebs": {
                          "type": "integer"
                        },
                        "totalVoicemails": {
                          "type": "integer"
                        },
                        "totalSoftphones": {
                          "type": "integer"
                        },
                        "totalNoAnswer": {
                          "type": "integer"
                        },
                        "grandTotal": {
                          "type": "integer"
                        }
                      }
                    },
                    "filters": {
                      "type": "object",
                      "properties": {
                        "direction": {
                          "type": "string"
                        },
                        "agentId": {
                          "type": "string"
                        },
                        "startDate": {
                          "type": "string"
                        },
                        "endDate": {
                          "type": "string"
                        },
                        "sortField": {
                          "type": "string"
                        },
                        "sortDirection": {
                          "type": "string"
                        },
                        "favorites": {
                          "type": "boolean"
                        },
                        "excludeWebCalls": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "calls": [
                    {
                      "id": "c_1757964000123",
                      "agentName": "Front Desk Agent",
                      "agentNameRaw": "Front Desk Agent",
                      "softphone": false,
                      "callerUserName": null,
                      "callerUserEmail": null,
                      "agentId": "cmexampleagent000000000001",
                      "incomingPhone": "+15555550142",
                      "outgoingPhone": "+15555550199",
                      "contact": {
                        "id": 1042,
                        "name": "Alex Morgan",
                        "phone": "+15555550142"
                      },
                      "variables": {},
                      "duration": 94,
                      "disposition": "Appointment Booked",
                      "dispositions": [
                        "Appointment Booked",
                        "Callback Requested",
                        "Not Interested"
                      ],
                      "startTime": "2026-09-15T18:02:11.000Z",
                      "endTime": "2026-09-15T18:03:45.000Z",
                      "status": "completed",
                      "recordingUrl": "https://example-bucket.s3.amazonaws.com/recordings/c_1757964000123.wav?X-Amz-Signature=...",
                      "completeRecordingUrl": null,
                      "transcript": null,
                      "summary": null,
                      "hasTranscript": true,
                      "hasSummary": true,
                      "audited": false,
                      "auditedBy": null,
                      "auditedByEmail": null,
                      "auditedByName": null,
                      "auditedAt": null,
                      "favorite": false,
                      "favoriteBy": null,
                      "favoriteByEmail": null,
                      "favoriteByName": null,
                      "favoriteAt": null,
                      "callScore": null,
                      "callScoreNotes": null,
                      "scoredAt": null,
                      "scoredBy": null,
                      "scoredByEmail": null,
                      "scoredByName": null,
                      "number": 48213,
                      "comments": null,
                      "batchId": null,
                      "call_type": "inbound",
                      "error": null,
                      "data": {}
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "pageSize": 50,
                    "total": 1,
                    "totalPages": 1,
                    "hasMore": false,
                    "totalInbounds": 1,
                    "totalOutbounds": 0,
                    "totalWebs": 0,
                    "totalVoicemails": 0,
                    "totalSoftphones": 0,
                    "totalNoAnswer": 0,
                    "grandTotal": 1
                  },
                  "filters": {
                    "direction": "inbound",
                    "agentId": "cmexampleagent000000000001",
                    "startDate": "2026-09-01",
                    "endDate": "2026-09-16",
                    "sortField": "startTime",
                    "sortDirection": "desc",
                    "favorites": false,
                    "excludeWebCalls": false
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/calls/{callId}": {
      "get": {
        "summary": "Get Call by ID",
        "description": "Fetch a single call with its transcript, summary, collected data and a pre-signed recording URL. contact is the CRM contact matched by phone number, or null. Returns 404 if the call does not belong to one of your organization's agents.\n\nDocs: https://docs.vinsi.ai/api-docs/call-id",
        "operationId": "callId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "callId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c_1757964000123"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "agentName": {
                      "type": "string"
                    },
                    "agentNameRaw": {
                      "type": "string"
                    },
                    "softphone": {
                      "type": "boolean"
                    },
                    "callerUserName": {},
                    "callerUserEmail": {},
                    "agentId": {
                      "type": "string"
                    },
                    "incomingPhone": {
                      "type": "string"
                    },
                    "outgoingPhone": {
                      "type": "string"
                    },
                    "contact": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        },
                        "phone": {
                          "type": "string"
                        }
                      }
                    },
                    "duration": {
                      "type": "integer"
                    },
                    "startTime": {
                      "type": "string"
                    },
                    "endTime": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "recordingUrl": {
                      "type": "string"
                    },
                    "transcript": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "appointmentDate": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "value": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "dispositions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "disposition": {
                      "type": "string"
                    },
                    "number": {
                      "type": "integer"
                    },
                    "batchId": {},
                    "transferredTo": {},
                    "call_type": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "id": "c_1757964000123",
                  "agentName": "Front Desk Agent",
                  "agentNameRaw": "Front Desk Agent",
                  "softphone": false,
                  "callerUserName": null,
                  "callerUserEmail": null,
                  "agentId": "cmexampleagent000000000001",
                  "incomingPhone": "+15555550142",
                  "outgoingPhone": "+15555550199",
                  "contact": {
                    "id": 1042,
                    "name": "Alex Morgan",
                    "phone": "+15555550142"
                  },
                  "duration": 94,
                  "startTime": "2026-09-15T18:02:11.000Z",
                  "endTime": "2026-09-15T18:03:45.000Z",
                  "status": "completed",
                  "recordingUrl": "https://example-bucket.s3.amazonaws.com/recordings/c_1757964000123.wav?X-Amz-Signature=...",
                  "transcript": "Agent: Thank you for calling Acme Dental, how can I help you today?\nCaller: I'd like to book a cleaning.",
                  "summary": "Caller booked a cleaning appointment for next Tuesday at 10am.",
                  "data": {
                    "appointmentDate": {
                      "label": "Appointment Date",
                      "value": "2026-09-22 10:00"
                    }
                  },
                  "dispositions": [
                    "Appointment Booked",
                    "Callback Requested",
                    "Not Interested"
                  ],
                  "disposition": "Appointment Booked",
                  "number": 48213,
                  "batchId": null,
                  "transferredTo": null,
                  "call_type": "inbound"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/calls/outbound": {
      "post": {
        "summary": "Start Outbound Call",
        "description": "Have an AI phone agent call a phone number now. phoneNumber (required): +1XXXXXXXXXX, or a 2-6 digit PBX extension for agents on a client PBX trunk. agentId (required): an active agent in your organization with outbound configured. variables (optional): key/value data passed to the agent for this call. voicemailMessage (optional): message the agent leaves if voicemail answers. The caller ID is the agent's default outbound number (Telephony → Set as default), otherwise its first assigned number. Each call uses minutes from your balance.\n\nDocs: https://docs.vinsi.ai/api-docs/call-outbound",
        "operationId": "callOutbound",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer"
                    },
                    "roomName": {
                      "type": "string"
                    },
                    "dispatchId": {
                      "type": "string"
                    },
                    "cluster": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "status": 200,
                  "roomName": "outbound-18055551234-a1b2c3",
                  "dispatchId": "AD_7Xk2mP9qLr4s",
                  "cluster": "vinsi-do"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phoneNumber": {
                    "type": "string"
                  },
                  "agentId": {
                    "type": "string"
                  },
                  "variables": {
                    "type": "object",
                    "properties": {
                      "customerName": {
                        "type": "string"
                      },
                      "appointmentTime": {
                        "type": "string"
                      }
                    }
                  },
                  "voicemailMessage": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "phoneNumber": "+18055551234",
                "agentId": "cm9t3bqos0000l404og1m9a9z",
                "variables": {
                  "customerName": "Jordan",
                  "appointmentTime": "Tuesday at 2 PM"
                },
                "voicemailMessage": "Hi Jordan, this is Acme calling to confirm your appointment. Please call us back."
              }
            }
          }
        }
      }
    },
    "/api/calls/export": {
      "post": {
        "summary": "Export Calls",
        "description": "Convert call records into a CSV file (text/csv). The endpoint does not look calls up: send the call objects to include in the calls array, for example the calls returned by Get Calls or Get Call by ID. Columns: ID, AgentID, Call number, Agent, Outgoing, Incoming, Disposition, Start Time, End Time, Duration, Status, Summary, Transcript, Data, Error. Returns 400 when calls is empty.\n\nDocs: https://docs.vinsi.ai/api-docs/export-calls",
        "operationId": "exportCalls",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "ID,AgentID,Call number,Agent,Outgoing,Incoming,Disposition,Start Time,End Time,Duration,Status,Summary,Transcript,Data,Error\n\"c_1757964000123\",\"cmexampleagent000000000001\",\"C-48213\",\"Front Desk Agent\",\"+15555550199\",\"+15555550142\",\"Appointment Booked\",\"2026-09-15 18:02:11\",\"2026-09-15 18:03:45\",\"1:34\",\"completed\",\"Caller booked a cleaning appointment.\",\"Agent: Thank you for calling...\",\"\",\"\""
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "calls": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "agentId": {
                          "type": "string"
                        },
                        "agentName": {
                          "type": "string"
                        },
                        "number": {
                          "type": "integer"
                        },
                        "incomingPhone": {
                          "type": "string"
                        },
                        "outgoingPhone": {
                          "type": "string"
                        },
                        "disposition": {
                          "type": "string"
                        },
                        "startTime": {
                          "type": "string"
                        },
                        "endTime": {
                          "type": "string"
                        },
                        "duration": {
                          "type": "integer"
                        },
                        "status": {
                          "type": "string"
                        },
                        "summary": {
                          "type": "string"
                        },
                        "transcript": {
                          "type": "string"
                        },
                        "data": {
                          "type": "object",
                          "properties": {}
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "calls": [
                  {
                    "id": "c_1757964000123",
                    "agentId": "cmexampleagent000000000001",
                    "agentName": "Front Desk Agent",
                    "number": 48213,
                    "incomingPhone": "+15555550142",
                    "outgoingPhone": "+15555550199",
                    "disposition": "Appointment Booked",
                    "startTime": "2026-09-15T18:02:11.000Z",
                    "endTime": "2026-09-15T18:03:45.000Z",
                    "duration": 94,
                    "status": "completed",
                    "summary": "Caller booked a cleaning appointment.",
                    "transcript": "Agent: Thank you for calling...",
                    "data": {}
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/api/calls/signed-url/{callId}": {
      "get": {
        "summary": "Get Signed URL",
        "description": "Get a temporary pre-signed URL for a call recording. Returns 404 if the call is not in your organization or has no recording.\n\nDocs: https://docs.vinsi.ai/api-docs/signed-url",
        "operationId": "signedUrl",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "callId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c_1757964000123"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "signedUrl": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "signedUrl": "https://example-bucket.s3.amazonaws.com/recordings/c_1757964000123.wav?X-Amz-Signature=..."
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/agents": {
      "get": {
        "summary": "Get Agents",
        "description": "Fetch a list of the active agents in your organization, sorted by name. Use Get Agent by ID for the full configuration, including the outbound settings and tools.\n\nDocs: https://docs.vinsi.ai/api-docs/agents",
        "operationId": "agents",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "voiceId": {
                        "type": "string"
                      },
                      "createdAt": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      },
                      "isActive": {
                        "type": "boolean"
                      },
                      "isAfterHoursFallback": {
                        "type": "boolean"
                      },
                      "defaultOutboundPhoneNumberId": {
                        "type": "string"
                      }
                    }
                  }
                },
                "example": [
                  {
                    "id": "cmexampleagent000000000001",
                    "name": "Front Desk Agent",
                    "voiceId": "exampleVoiceId0001",
                    "createdAt": "2026-09-01T17:22:57.945Z",
                    "updatedAt": "2026-09-10T21:14:00.000Z",
                    "isActive": true,
                    "isAfterHoursFallback": false,
                    "defaultOutboundPhoneNumberId": "phn_1757964000123_k2j4h5g6f"
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Agent",
        "description": "Create a new agent. name is required, and the outbound object (the settings used when the agent places outbound calls) must be included. waitingSound must be \"\", keyboard_typing or hold_music, and maxCallTime must be a whole number (0 = no limit). tools is a list of tool IDs. Responds 201 with the new agent.\n\nDocs: https://docs.vinsi.ai/api-docs/agent-create",
        "operationId": "agentCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "welcomeMessage": {
                      "type": "string"
                    },
                    "instructions": {
                      "type": "string"
                    },
                    "voiceId": {
                      "type": "string"
                    },
                    "isActive": {
                      "type": "boolean"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "temperature": {
                      "type": "number"
                    },
                    "maxTokens": {
                      "type": "integer"
                    },
                    "language": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "vad_threshold": {
                      "type": "number"
                    },
                    "knowledge_base": {
                      "type": "string"
                    },
                    "dispositions": {
                      "type": "array",
                      "items": {}
                    },
                    "timezone": {
                      "type": "string"
                    },
                    "afterCallWebhookUrl": {},
                    "outbound_id": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string"
                    },
                    "workflowDefinition": {},
                    "firstActionToolId": {},
                    "callData": {
                      "type": "object",
                      "properties": {}
                    },
                    "waitingSound": {
                      "type": "string"
                    },
                    "currentHistoryId": {
                      "type": "integer"
                    },
                    "integrations": {},
                    "voicemailMessage": {
                      "type": "string"
                    },
                    "allowInterruptions": {
                      "type": "string"
                    },
                    "turnDetectionSensitivity": {
                      "type": "number"
                    },
                    "turnDetectionSettings": {
                      "type": "object",
                      "properties": {
                        "minEndpointingDelay": {
                          "type": "number"
                        },
                        "maxEndpointingDelay": {
                          "type": "integer"
                        },
                        "minInterruptionDuration": {
                          "type": "number"
                        },
                        "minInterruptionWords": {
                          "type": "integer"
                        },
                        "userAwayTimeout": {
                          "type": "integer"
                        },
                        "preemptiveGeneration": {
                          "type": "boolean"
                        },
                        "agentFalseInterruptionTimeout": {
                          "type": "integer"
                        },
                        "vadMode": {
                          "type": "string"
                        }
                      }
                    },
                    "voiceIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "voiceSelectionMode": {
                      "type": "string"
                    },
                    "outbound": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "userId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "welcomeMessage": {
                          "type": "string"
                        },
                        "instructions": {
                          "type": "string"
                        },
                        "aimodel": {
                          "type": "string"
                        },
                        "voiceId": {},
                        "isActive": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "temperature": {
                          "type": "number"
                        },
                        "maxTokens": {},
                        "language": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "vad_threshold": {
                          "type": "number"
                        },
                        "knowledge_base": {
                          "type": "string"
                        },
                        "dispositions": {
                          "type": "array",
                          "items": {}
                        },
                        "timezone": {
                          "type": "string"
                        },
                        "afterCallWebhookUrl": {},
                        "outbound_id": {},
                        "mode": {
                          "type": "string"
                        },
                        "workflowDefinition": {},
                        "firstActionToolId": {},
                        "callData": {
                          "type": "object",
                          "properties": {}
                        },
                        "waitingSound": {
                          "type": "string"
                        },
                        "currentHistoryId": {
                          "type": "integer"
                        },
                        "integrations": {},
                        "voicemailMessage": {
                          "type": "string"
                        },
                        "allowInterruptions": {
                          "type": "string"
                        },
                        "turnDetectionSensitivity": {
                          "type": "number"
                        },
                        "turnDetectionSettings": {
                          "type": "object",
                          "properties": {
                            "minEndpointingDelay": {
                              "type": "number"
                            },
                            "maxEndpointingDelay": {
                              "type": "integer"
                            },
                            "minInterruptionDuration": {
                              "type": "number"
                            },
                            "minInterruptionWords": {
                              "type": "integer"
                            },
                            "userAwayTimeout": {
                              "type": "integer"
                            },
                            "preemptiveGeneration": {
                              "type": "boolean"
                            },
                            "agentFalseInterruptionTimeout": {
                              "type": "integer"
                            },
                            "vadMode": {
                              "type": "string"
                            }
                          }
                        },
                        "voiceIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "voiceSelectionMode": {
                          "type": "string"
                        },
                        "tools": {
                          "type": "array",
                          "items": {}
                        }
                      }
                    },
                    "tools": {
                      "type": "array",
                      "items": {}
                    }
                  }
                },
                "example": {
                  "id": "cmkoak2s90002l704zm7pkxbh",
                  "userId": "cmg5ipqwt0000jp04a21yzv8b",
                  "name": "New Agent",
                  "welcomeMessage": "Thank you for calling. How can I help you today?",
                  "instructions": "",
                  "voiceId": "",
                  "isActive": true,
                  "createdAt": "2026-01-21T17:22:57.945Z",
                  "updatedAt": "2026-01-21T17:22:58.290Z",
                  "temperature": 0.6,
                  "maxTokens": 250,
                  "language": "en-US",
                  "organizationId": "cmg5ipsl00001jp04ujljuq2w",
                  "vad_threshold": 0.7,
                  "knowledge_base": "",
                  "dispositions": [],
                  "timezone": "America/Los_Angeles",
                  "afterCallWebhookUrl": null,
                  "outbound_id": "cmkoak2ut0004l70405u76dw8",
                  "mode": "prompt",
                  "workflowDefinition": null,
                  "firstActionToolId": null,
                  "callData": {},
                  "waitingSound": "",
                  "currentHistoryId": 1548,
                  "integrations": null,
                  "voicemailMessage": "",
                  "allowInterruptions": "",
                  "turnDetectionSensitivity": 0.7,
                  "turnDetectionSettings": {
                    "minEndpointingDelay": 0.5,
                    "maxEndpointingDelay": 3,
                    "minInterruptionDuration": 0.35,
                    "minInterruptionWords": 1,
                    "userAwayTimeout": 15,
                    "preemptiveGeneration": true,
                    "agentFalseInterruptionTimeout": 4,
                    "vadMode": "fast"
                  },
                  "voiceIds": [
                    "uYXf8XasLslADfZ2MB4u"
                  ],
                  "voiceSelectionMode": "cycling",
                  "outbound": {
                    "id": "cmkoak2ut0004l70405u76dw8",
                    "userId": "cmg5ipqwt0000jp04a21yzv8b",
                    "name": "New Agent",
                    "welcomeMessage": "Thank you for calling. How can I help you today?",
                    "instructions": "",
                    "aimodel": "gpt-4o",
                    "voiceId": null,
                    "isActive": true,
                    "createdAt": "2026-01-21T17:22:58.037Z",
                    "updatedAt": "2026-01-21T17:22:58.400Z",
                    "temperature": 0.6,
                    "maxTokens": null,
                    "language": "en-US",
                    "organizationId": "cmg5ipsl00001jp04ujljuq2w",
                    "vad_threshold": 0.7,
                    "knowledge_base": "",
                    "dispositions": [],
                    "timezone": "America/Los_Angeles",
                    "afterCallWebhookUrl": null,
                    "outbound_id": null,
                    "mode": "prompt",
                    "workflowDefinition": null,
                    "firstActionToolId": null,
                    "callData": {},
                    "waitingSound": "",
                    "currentHistoryId": 1547,
                    "integrations": null,
                    "voicemailMessage": "",
                    "allowInterruptions": "yes",
                    "turnDetectionSensitivity": 0.7,
                    "turnDetectionSettings": {
                      "minEndpointingDelay": 0.5,
                      "maxEndpointingDelay": 3,
                      "minInterruptionDuration": 0.35,
                      "minInterruptionWords": 1,
                      "userAwayTimeout": 15,
                      "preemptiveGeneration": true,
                      "agentFalseInterruptionTimeout": 4,
                      "vadMode": "fast"
                    },
                    "voiceIds": [
                      "uYXf8XasLslADfZ2MB4u"
                    ],
                    "voiceSelectionMode": "cycling",
                    "tools": []
                  },
                  "tools": []
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "voiceId": {
                    "type": "string"
                  },
                  "welcomeMessage": {
                    "type": "string"
                  },
                  "instructions": {
                    "type": "string"
                  },
                  "knowledge_base": {
                    "type": "string"
                  },
                  "temperature": {
                    "type": "number"
                  },
                  "vad_threshold": {
                    "type": "number"
                  },
                  "language": {
                    "type": "string"
                  },
                  "maxTokens": {
                    "type": "integer"
                  },
                  "isActive": {
                    "type": "boolean"
                  },
                  "tools": {
                    "type": "array",
                    "items": {}
                  },
                  "dispositions": {
                    "type": "array",
                    "items": {}
                  },
                  "afterCallWebhookUrl": {},
                  "timezone": {
                    "type": "string"
                  },
                  "firstActionToolId": {},
                  "callData": {
                    "type": "object",
                    "properties": {}
                  },
                  "waitingSound": {
                    "type": "string"
                  },
                  "allowInterruptions": {
                    "type": "string"
                  },
                  "turnDetectionSensitivity": {
                    "type": "number"
                  },
                  "voiceSelectionMode": {
                    "type": "string"
                  },
                  "outbound": {
                    "type": "object",
                    "properties": {
                      "voiceId": {
                        "type": "string"
                      },
                      "welcomeMessage": {
                        "type": "string"
                      },
                      "instructions": {
                        "type": "string"
                      },
                      "knowledge_base": {
                        "type": "string"
                      },
                      "temperature": {
                        "type": "number"
                      },
                      "vad_threshold": {
                        "type": "number"
                      },
                      "language": {
                        "type": "string"
                      },
                      "maxCallTime": {
                        "type": "integer"
                      },
                      "tools": {
                        "type": "array",
                        "items": {}
                      },
                      "dispositions": {
                        "type": "array",
                        "items": {}
                      },
                      "afterCallWebhookUrl": {},
                      "timezone": {
                        "type": "string"
                      },
                      "firstActionToolId": {},
                      "callData": {
                        "type": "object",
                        "properties": {}
                      },
                      "waitingSound": {
                        "type": "string"
                      },
                      "voicemailMessage": {
                        "type": "string"
                      },
                      "allowInterruptions": {
                        "type": "string"
                      },
                      "turnDetectionSensitivity": {
                        "type": "number"
                      },
                      "voiceSelectionMode": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "example": {
                "name": "New Agent",
                "voiceId": "",
                "welcomeMessage": "Thank you for calling. How can I help you today?",
                "instructions": "Test",
                "knowledge_base": "",
                "temperature": 0.6,
                "vad_threshold": 0.7,
                "language": "en-US",
                "maxTokens": 250,
                "isActive": true,
                "tools": [],
                "dispositions": [],
                "afterCallWebhookUrl": null,
                "timezone": "America/Los_Angeles",
                "firstActionToolId": null,
                "callData": {},
                "waitingSound": "",
                "allowInterruptions": "yes",
                "turnDetectionSensitivity": 0.7,
                "voiceSelectionMode": "cycling",
                "outbound": {
                  "voiceId": "",
                  "welcomeMessage": "Hi, this is Acme Dental calling about your appointment.",
                  "instructions": "Confirm the appointment date and time.",
                  "knowledge_base": "",
                  "temperature": 0.6,
                  "vad_threshold": 0.7,
                  "language": "en-US",
                  "maxCallTime": 0,
                  "tools": [],
                  "dispositions": [],
                  "afterCallWebhookUrl": null,
                  "timezone": "America/Los_Angeles",
                  "firstActionToolId": null,
                  "callData": {},
                  "waitingSound": "",
                  "voicemailMessage": "",
                  "allowInterruptions": "yes",
                  "turnDetectionSensitivity": 0.7,
                  "voiceSelectionMode": "cycling"
                }
              }
            }
          }
        }
      }
    },
    "/api/agents/{agentId}": {
      "get": {
        "summary": "Get Agent by ID",
        "description": "Fetch an agent by ID\n\nDocs: https://docs.vinsi.ai/api-docs/agent-id",
        "operationId": "agentId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "agentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "cm9t3bqos0000l404og1m9a9z"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "welcomeMessage": {
                      "type": "string"
                    },
                    "instructions": {
                      "type": "string"
                    },
                    "voiceId": {
                      "type": "string"
                    },
                    "isActive": {
                      "type": "boolean"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "temperature": {
                      "type": "number"
                    },
                    "maxTokens": {
                      "type": "integer"
                    },
                    "language": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "vad_threshold": {
                      "type": "number"
                    },
                    "knowledge_base": {
                      "type": "string"
                    },
                    "dispositions": {
                      "type": "array",
                      "items": {}
                    },
                    "timezone": {
                      "type": "string"
                    },
                    "afterCallWebhookUrl": {},
                    "outbound_id": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string"
                    },
                    "workflowDefinition": {},
                    "firstActionToolId": {},
                    "callData": {
                      "type": "object",
                      "properties": {}
                    },
                    "waitingSound": {
                      "type": "string"
                    },
                    "currentHistoryId": {
                      "type": "integer"
                    },
                    "integrations": {},
                    "voicemailMessage": {
                      "type": "string"
                    },
                    "allowInterruptions": {
                      "type": "string"
                    },
                    "turnDetectionSensitivity": {
                      "type": "number"
                    },
                    "turnDetectionSettings": {
                      "type": "object",
                      "properties": {
                        "minEndpointingDelay": {
                          "type": "number"
                        },
                        "maxEndpointingDelay": {
                          "type": "integer"
                        },
                        "minInterruptionDuration": {
                          "type": "number"
                        },
                        "minInterruptionWords": {
                          "type": "integer"
                        },
                        "userAwayTimeout": {
                          "type": "integer"
                        },
                        "preemptiveGeneration": {
                          "type": "boolean"
                        },
                        "agentFalseInterruptionTimeout": {
                          "type": "integer"
                        },
                        "vadMode": {
                          "type": "string"
                        }
                      }
                    },
                    "voiceIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "voiceSelectionMode": {
                      "type": "string"
                    },
                    "outbound": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "userId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "welcomeMessage": {
                          "type": "string"
                        },
                        "instructions": {
                          "type": "string"
                        },
                        "aimodel": {
                          "type": "string"
                        },
                        "voiceId": {},
                        "isActive": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "temperature": {
                          "type": "number"
                        },
                        "maxTokens": {},
                        "language": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "vad_threshold": {
                          "type": "number"
                        },
                        "knowledge_base": {
                          "type": "string"
                        },
                        "dispositions": {
                          "type": "array",
                          "items": {}
                        },
                        "timezone": {
                          "type": "string"
                        },
                        "afterCallWebhookUrl": {},
                        "outbound_id": {},
                        "mode": {
                          "type": "string"
                        },
                        "workflowDefinition": {},
                        "firstActionToolId": {},
                        "callData": {
                          "type": "object",
                          "properties": {}
                        },
                        "waitingSound": {
                          "type": "string"
                        },
                        "currentHistoryId": {
                          "type": "integer"
                        },
                        "integrations": {},
                        "voicemailMessage": {
                          "type": "string"
                        },
                        "allowInterruptions": {
                          "type": "string"
                        },
                        "turnDetectionSensitivity": {
                          "type": "number"
                        },
                        "turnDetectionSettings": {
                          "type": "object",
                          "properties": {
                            "minEndpointingDelay": {
                              "type": "number"
                            },
                            "maxEndpointingDelay": {
                              "type": "integer"
                            },
                            "minInterruptionDuration": {
                              "type": "number"
                            },
                            "minInterruptionWords": {
                              "type": "integer"
                            },
                            "userAwayTimeout": {
                              "type": "integer"
                            },
                            "preemptiveGeneration": {
                              "type": "boolean"
                            },
                            "agentFalseInterruptionTimeout": {
                              "type": "integer"
                            },
                            "vadMode": {
                              "type": "string"
                            }
                          }
                        },
                        "voiceIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "voiceSelectionMode": {
                          "type": "string"
                        },
                        "tools": {
                          "type": "array",
                          "items": {}
                        }
                      }
                    },
                    "tools": {
                      "type": "array",
                      "items": {}
                    }
                  }
                },
                "example": {
                  "id": "cmkoak2s90002l704zm7pkxbh",
                  "userId": "cmg5ipqwt0000jp04a21yzv8b",
                  "name": "New Agent",
                  "welcomeMessage": "Thank you for calling. How can I help you today?",
                  "instructions": "",
                  "voiceId": "",
                  "isActive": true,
                  "createdAt": "2026-01-21T17:22:57.945Z",
                  "updatedAt": "2026-01-21T17:22:58.290Z",
                  "temperature": 0.6,
                  "maxTokens": 250,
                  "language": "en-US",
                  "organizationId": "cmg5ipsl00001jp04ujljuq2w",
                  "vad_threshold": 0.7,
                  "knowledge_base": "",
                  "dispositions": [],
                  "timezone": "America/Los_Angeles",
                  "afterCallWebhookUrl": null,
                  "outbound_id": "cmkoak2ut0004l70405u76dw8",
                  "mode": "prompt",
                  "workflowDefinition": null,
                  "firstActionToolId": null,
                  "callData": {},
                  "waitingSound": "",
                  "currentHistoryId": 1548,
                  "integrations": null,
                  "voicemailMessage": "",
                  "allowInterruptions": "",
                  "turnDetectionSensitivity": 0.7,
                  "turnDetectionSettings": {
                    "minEndpointingDelay": 0.5,
                    "maxEndpointingDelay": 3,
                    "minInterruptionDuration": 0.35,
                    "minInterruptionWords": 1,
                    "userAwayTimeout": 15,
                    "preemptiveGeneration": true,
                    "agentFalseInterruptionTimeout": 4,
                    "vadMode": "fast"
                  },
                  "voiceIds": [
                    "uYXf8XasLslADfZ2MB4u"
                  ],
                  "voiceSelectionMode": "cycling",
                  "outbound": {
                    "id": "cmkoak2ut0004l70405u76dw8",
                    "userId": "cmg5ipqwt0000jp04a21yzv8b",
                    "name": "New Agent",
                    "welcomeMessage": "Thank you for calling. How can I help you today?",
                    "instructions": "",
                    "aimodel": "gpt-4o",
                    "voiceId": null,
                    "isActive": true,
                    "createdAt": "2026-01-21T17:22:58.037Z",
                    "updatedAt": "2026-01-21T17:22:58.400Z",
                    "temperature": 0.6,
                    "maxTokens": null,
                    "language": "en-US",
                    "organizationId": "cmg5ipsl00001jp04ujljuq2w",
                    "vad_threshold": 0.7,
                    "knowledge_base": "",
                    "dispositions": [],
                    "timezone": "America/Los_Angeles",
                    "afterCallWebhookUrl": null,
                    "outbound_id": null,
                    "mode": "prompt",
                    "workflowDefinition": null,
                    "firstActionToolId": null,
                    "callData": {},
                    "waitingSound": "",
                    "currentHistoryId": 1547,
                    "integrations": null,
                    "voicemailMessage": "",
                    "allowInterruptions": "yes",
                    "turnDetectionSensitivity": 0.7,
                    "turnDetectionSettings": {
                      "minEndpointingDelay": 0.5,
                      "maxEndpointingDelay": 3,
                      "minInterruptionDuration": 0.35,
                      "minInterruptionWords": 1,
                      "userAwayTimeout": 15,
                      "preemptiveGeneration": true,
                      "agentFalseInterruptionTimeout": 4,
                      "vadMode": "fast"
                    },
                    "voiceIds": [
                      "uYXf8XasLslADfZ2MB4u"
                    ],
                    "voiceSelectionMode": "cycling",
                    "tools": []
                  },
                  "tools": []
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Agent",
        "description": "Update an existing agent. Send the full configuration, including the outbound object (with its tools array). Some omitted fields are reset rather than kept: tools, dispositions, callData and keyterms become empty, timezone becomes America/Los_Angeles and allowInterruptions becomes yes. waitingSound must be \"\", keyboard_typing or hold_music. Include a comment to save the change as a new version in the agent history.\n\nDocs: https://docs.vinsi.ai/api-docs/agent-update",
        "operationId": "agentUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "agentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "cm9t3bqos0000l404og1m9a9z"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "welcomeMessage": {
                      "type": "string"
                    },
                    "instructions": {
                      "type": "string"
                    },
                    "voiceId": {
                      "type": "string"
                    },
                    "isActive": {
                      "type": "boolean"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "temperature": {
                      "type": "number"
                    },
                    "maxTokens": {
                      "type": "integer"
                    },
                    "language": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "vad_threshold": {
                      "type": "number"
                    },
                    "knowledge_base": {
                      "type": "string"
                    },
                    "dispositions": {
                      "type": "array",
                      "items": {}
                    },
                    "timezone": {
                      "type": "string"
                    },
                    "afterCallWebhookUrl": {},
                    "outbound_id": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string"
                    },
                    "workflowDefinition": {},
                    "firstActionToolId": {},
                    "callData": {
                      "type": "object",
                      "properties": {}
                    },
                    "waitingSound": {
                      "type": "string"
                    },
                    "currentHistoryId": {
                      "type": "integer"
                    },
                    "integrations": {},
                    "voicemailMessage": {
                      "type": "string"
                    },
                    "allowInterruptions": {
                      "type": "string"
                    },
                    "turnDetectionSensitivity": {
                      "type": "number"
                    },
                    "turnDetectionSettings": {
                      "type": "object",
                      "properties": {
                        "minEndpointingDelay": {
                          "type": "number"
                        },
                        "maxEndpointingDelay": {
                          "type": "integer"
                        },
                        "minInterruptionDuration": {
                          "type": "number"
                        },
                        "minInterruptionWords": {
                          "type": "integer"
                        },
                        "userAwayTimeout": {
                          "type": "integer"
                        },
                        "preemptiveGeneration": {
                          "type": "boolean"
                        },
                        "agentFalseInterruptionTimeout": {
                          "type": "integer"
                        },
                        "vadMode": {
                          "type": "string"
                        }
                      }
                    },
                    "voiceIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "voiceSelectionMode": {
                      "type": "string"
                    },
                    "outbound": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "userId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "welcomeMessage": {
                          "type": "string"
                        },
                        "instructions": {
                          "type": "string"
                        },
                        "aimodel": {
                          "type": "string"
                        },
                        "voiceId": {},
                        "isActive": {
                          "type": "boolean"
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "temperature": {
                          "type": "number"
                        },
                        "maxTokens": {},
                        "language": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        },
                        "vad_threshold": {
                          "type": "number"
                        },
                        "knowledge_base": {
                          "type": "string"
                        },
                        "dispositions": {
                          "type": "array",
                          "items": {}
                        },
                        "timezone": {
                          "type": "string"
                        },
                        "afterCallWebhookUrl": {},
                        "outbound_id": {},
                        "mode": {
                          "type": "string"
                        },
                        "workflowDefinition": {},
                        "firstActionToolId": {},
                        "callData": {
                          "type": "object",
                          "properties": {}
                        },
                        "waitingSound": {
                          "type": "string"
                        },
                        "currentHistoryId": {
                          "type": "integer"
                        },
                        "integrations": {},
                        "voicemailMessage": {
                          "type": "string"
                        },
                        "allowInterruptions": {
                          "type": "string"
                        },
                        "turnDetectionSensitivity": {
                          "type": "number"
                        },
                        "turnDetectionSettings": {
                          "type": "object",
                          "properties": {
                            "minEndpointingDelay": {
                              "type": "number"
                            },
                            "maxEndpointingDelay": {
                              "type": "integer"
                            },
                            "minInterruptionDuration": {
                              "type": "number"
                            },
                            "minInterruptionWords": {
                              "type": "integer"
                            },
                            "userAwayTimeout": {
                              "type": "integer"
                            },
                            "preemptiveGeneration": {
                              "type": "boolean"
                            },
                            "agentFalseInterruptionTimeout": {
                              "type": "integer"
                            },
                            "vadMode": {
                              "type": "string"
                            }
                          }
                        },
                        "voiceIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "voiceSelectionMode": {
                          "type": "string"
                        },
                        "tools": {
                          "type": "array",
                          "items": {}
                        }
                      }
                    },
                    "tools": {
                      "type": "array",
                      "items": {}
                    }
                  }
                },
                "example": {
                  "id": "cmkoak2s90002l704zm7pkxbh",
                  "userId": "cmg5ipqwt0000jp04a21yzv8b",
                  "name": "New Agent",
                  "welcomeMessage": "Thank you for calling. How can I help you today?",
                  "instructions": "",
                  "voiceId": "",
                  "isActive": true,
                  "createdAt": "2026-01-21T17:22:57.945Z",
                  "updatedAt": "2026-01-21T17:22:58.290Z",
                  "temperature": 0.6,
                  "maxTokens": 250,
                  "language": "en-US",
                  "organizationId": "cmg5ipsl00001jp04ujljuq2w",
                  "vad_threshold": 0.7,
                  "knowledge_base": "",
                  "dispositions": [],
                  "timezone": "America/Los_Angeles",
                  "afterCallWebhookUrl": null,
                  "outbound_id": "cmkoak2ut0004l70405u76dw8",
                  "mode": "prompt",
                  "workflowDefinition": null,
                  "firstActionToolId": null,
                  "callData": {},
                  "waitingSound": "",
                  "currentHistoryId": 1548,
                  "integrations": null,
                  "voicemailMessage": "",
                  "allowInterruptions": "",
                  "turnDetectionSensitivity": 0.7,
                  "turnDetectionSettings": {
                    "minEndpointingDelay": 0.5,
                    "maxEndpointingDelay": 3,
                    "minInterruptionDuration": 0.35,
                    "minInterruptionWords": 1,
                    "userAwayTimeout": 15,
                    "preemptiveGeneration": true,
                    "agentFalseInterruptionTimeout": 4,
                    "vadMode": "fast"
                  },
                  "voiceIds": [
                    "uYXf8XasLslADfZ2MB4u"
                  ],
                  "voiceSelectionMode": "cycling",
                  "outbound": {
                    "id": "cmkoak2ut0004l70405u76dw8",
                    "userId": "cmg5ipqwt0000jp04a21yzv8b",
                    "name": "New Agent",
                    "welcomeMessage": "Thank you for calling. How can I help you today?",
                    "instructions": "",
                    "aimodel": "gpt-4o",
                    "voiceId": null,
                    "isActive": true,
                    "createdAt": "2026-01-21T17:22:58.037Z",
                    "updatedAt": "2026-01-21T17:22:58.400Z",
                    "temperature": 0.6,
                    "maxTokens": null,
                    "language": "en-US",
                    "organizationId": "cmg5ipsl00001jp04ujljuq2w",
                    "vad_threshold": 0.7,
                    "knowledge_base": "",
                    "dispositions": [],
                    "timezone": "America/Los_Angeles",
                    "afterCallWebhookUrl": null,
                    "outbound_id": null,
                    "mode": "prompt",
                    "workflowDefinition": null,
                    "firstActionToolId": null,
                    "callData": {},
                    "waitingSound": "",
                    "currentHistoryId": 1547,
                    "integrations": null,
                    "voicemailMessage": "",
                    "allowInterruptions": "yes",
                    "turnDetectionSensitivity": 0.7,
                    "turnDetectionSettings": {
                      "minEndpointingDelay": 0.5,
                      "maxEndpointingDelay": 3,
                      "minInterruptionDuration": 0.35,
                      "minInterruptionWords": 1,
                      "userAwayTimeout": 15,
                      "preemptiveGeneration": true,
                      "agentFalseInterruptionTimeout": 4,
                      "vadMode": "fast"
                    },
                    "voiceIds": [
                      "uYXf8XasLslADfZ2MB4u"
                    ],
                    "voiceSelectionMode": "cycling",
                    "tools": []
                  },
                  "tools": []
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "voiceId": {
                    "type": "string"
                  },
                  "welcomeMessage": {
                    "type": "string"
                  },
                  "instructions": {
                    "type": "string"
                  },
                  "knowledge_base": {
                    "type": "string"
                  },
                  "temperature": {
                    "type": "number"
                  },
                  "vad_threshold": {
                    "type": "number"
                  },
                  "language": {
                    "type": "string"
                  },
                  "maxTokens": {
                    "type": "integer"
                  },
                  "isActive": {
                    "type": "boolean"
                  },
                  "tools": {
                    "type": "array",
                    "items": {}
                  },
                  "dispositions": {
                    "type": "array",
                    "items": {}
                  },
                  "afterCallWebhookUrl": {},
                  "timezone": {
                    "type": "string"
                  },
                  "firstActionToolId": {},
                  "callData": {
                    "type": "object",
                    "properties": {}
                  },
                  "waitingSound": {
                    "type": "string"
                  },
                  "comment": {},
                  "allowInterruptions": {
                    "type": "string"
                  },
                  "turnDetectionSensitivity": {
                    "type": "number"
                  },
                  "voiceSelectionMode": {
                    "type": "string"
                  },
                  "outbound": {
                    "type": "object",
                    "properties": {
                      "voiceId": {
                        "type": "string"
                      },
                      "welcomeMessage": {
                        "type": "string"
                      },
                      "instructions": {
                        "type": "string"
                      },
                      "knowledge_base": {
                        "type": "string"
                      },
                      "temperature": {
                        "type": "number"
                      },
                      "vad_threshold": {
                        "type": "number"
                      },
                      "language": {
                        "type": "string"
                      },
                      "maxCallTime": {
                        "type": "integer"
                      },
                      "tools": {
                        "type": "array",
                        "items": {}
                      },
                      "dispositions": {
                        "type": "array",
                        "items": {}
                      },
                      "afterCallWebhookUrl": {},
                      "timezone": {
                        "type": "string"
                      },
                      "firstActionToolId": {},
                      "callData": {
                        "type": "object",
                        "properties": {}
                      },
                      "waitingSound": {
                        "type": "string"
                      },
                      "voicemailMessage": {
                        "type": "string"
                      },
                      "allowInterruptions": {
                        "type": "string"
                      },
                      "turnDetectionSensitivity": {
                        "type": "number"
                      },
                      "voiceSelectionMode": {
                        "type": "string"
                      }
                    }
                  },
                  "integrations": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "New Agent",
                "voiceId": "",
                "welcomeMessage": "Thank you for calling. How can I help you today?",
                "instructions": "Test",
                "knowledge_base": "",
                "temperature": 0.6,
                "vad_threshold": 0.7,
                "language": "en-US",
                "maxTokens": 250,
                "isActive": true,
                "tools": [],
                "dispositions": [],
                "afterCallWebhookUrl": null,
                "timezone": "America/Los_Angeles",
                "firstActionToolId": null,
                "callData": {},
                "waitingSound": "",
                "comment": null,
                "allowInterruptions": "yes",
                "turnDetectionSensitivity": 0.7,
                "voiceSelectionMode": "cycling",
                "outbound": {
                  "voiceId": "",
                  "welcomeMessage": "Hi, this is Acme Dental calling about your appointment.",
                  "instructions": "Confirm the appointment date and time.",
                  "knowledge_base": "",
                  "temperature": 0.6,
                  "vad_threshold": 0.7,
                  "language": "en-US",
                  "maxCallTime": 0,
                  "tools": [],
                  "dispositions": [],
                  "afterCallWebhookUrl": null,
                  "timezone": "America/Los_Angeles",
                  "firstActionToolId": null,
                  "callData": {},
                  "waitingSound": "",
                  "voicemailMessage": "",
                  "allowInterruptions": "yes",
                  "turnDetectionSensitivity": 0.7,
                  "voiceSelectionMode": "cycling"
                },
                "integrations": ""
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Agent",
        "description": "Delete an existing Agent\n\nDocs: https://docs.vinsi.ai/api-docs/agent-delete",
        "operationId": "agentDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "agentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "cm9t3bqos0000l404og1m9a9z"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "message": "Agent deleted successfully"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/voices": {
      "get": {
        "summary": "Get Voices",
        "description": "Fetch the voices available to your organization (global voices plus any added to your organization), sorted by name. Use VoiceID as voiceId when creating or updating an agent.\n\nDocs: https://docs.vinsi.ai/api-docs/voices",
        "operationId": "voices",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "ID": {
                        "type": "integer"
                      },
                      "VoiceName": {
                        "type": "string"
                      },
                      "VoiceID": {
                        "type": "string"
                      },
                      "VoiceProvider": {
                        "type": "string"
                      },
                      "Sex": {
                        "type": "string"
                      },
                      "Languages": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "Description": {
                        "type": "string"
                      },
                      "userId": {},
                      "createdAt": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      },
                      "LanguagesCount": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "example": [
                  {
                    "ID": 12,
                    "VoiceName": "Alice",
                    "VoiceID": "Xb7hH8MSUJpSbSDYk0k2",
                    "VoiceProvider": "elevenlabs",
                    "Sex": "WOMEN",
                    "Languages": [
                      "English"
                    ],
                    "Description": "British Confident Middle aged",
                    "userId": null,
                    "createdAt": "2026-01-22T17:00:00.000Z",
                    "updatedAt": "2026-01-22T17:00:00.000Z",
                    "LanguagesCount": 1
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/phone-numbers": {
      "get": {
        "summary": "Get Phone Numbers",
        "description": "Fetch every phone number in your organization, each with its assigned agent (or null).\n\nDocs: https://docs.vinsi.ai/api-docs/phone-numbers",
        "operationId": "phoneNumbers",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "phoneNumber": {
                        "type": "string"
                      },
                      "friendlyName": {
                        "type": "string"
                      },
                      "providerId": {
                        "type": "string"
                      },
                      "provider": {
                        "type": "string"
                      },
                      "capabilities": {
                        "type": "string"
                      },
                      "agentId": {
                        "type": "string"
                      },
                      "fallbackNumber": {},
                      "isActive": {
                        "type": "boolean"
                      },
                      "userId": {
                        "type": "string"
                      },
                      "organizationId": {
                        "type": "string"
                      },
                      "createdAt": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      },
                      "SIPUserName": {},
                      "SIPPassword": {},
                      "SIPTerminationURI": {},
                      "livekitTrunkConfigured": {
                        "type": "boolean"
                      },
                      "trunkName": {
                        "type": "string"
                      },
                      "livekitTrunkId": {
                        "type": "string"
                      },
                      "livekitOutboundTrunkId": {},
                      "livekitOutboundConfigured": {},
                      "stripeSubscriptionId": {},
                      "routingMode": {
                        "type": "string"
                      },
                      "routingDeskPhoneId": {},
                      "voicemailEnabled": {
                        "type": "boolean"
                      },
                      "voicemailPin": {},
                      "huntGroupId": {},
                      "queueId": {},
                      "queuePriority": {},
                      "livekitCluster": {
                        "type": "string"
                      },
                      "agent": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "integrations": {},
                          "isAfterHoursFallback": {
                            "type": "boolean"
                          },
                          "routeOutboundVia": {
                            "type": "string"
                          },
                          "defaultOutboundPhoneNumberId": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": [
                  {
                    "id": "phn_1757964000123_k2j4h5g6f",
                    "phoneNumber": "+15555550199",
                    "friendlyName": "Main Line",
                    "providerId": "2468013579246801357",
                    "provider": "telnyx",
                    "capabilities": "{\"voice\":true,\"sms\":true}",
                    "agentId": "cmexampleagent000000000001",
                    "fallbackNumber": null,
                    "isActive": true,
                    "userId": "cmexampleuser0000000000001",
                    "organizationId": "cmexampleorg00000000000001",
                    "createdAt": "2026-09-01T18:00:00.000Z",
                    "updatedAt": "2026-09-10T21:14:00.000Z",
                    "SIPUserName": null,
                    "SIPPassword": null,
                    "SIPTerminationURI": null,
                    "livekitTrunkConfigured": true,
                    "trunkName": "Main Line",
                    "livekitTrunkId": "ST_exampleTrunk01",
                    "livekitOutboundTrunkId": null,
                    "livekitOutboundConfigured": null,
                    "stripeSubscriptionId": null,
                    "routingMode": "agent",
                    "routingDeskPhoneId": null,
                    "voicemailEnabled": false,
                    "voicemailPin": null,
                    "huntGroupId": null,
                    "queueId": null,
                    "queuePriority": null,
                    "livekitCluster": "vinsi-do",
                    "agent": {
                      "id": "cmexampleagent000000000001",
                      "name": "Front Desk Agent",
                      "integrations": null,
                      "isAfterHoursFallback": false,
                      "routeOutboundVia": "telnyx",
                      "defaultOutboundPhoneNumberId": "phn_1757964000123_k2j4h5g6f"
                    }
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Phone Number",
        "description": "Purchase a phone number (E.164, usually picked from Get Phone Numbers by Area Code) and add it to your organization. Uses 1 phone credit, which is refunded if provisioning fails. Toll-free numbers are not allowed. Returns 400 when you have no phone credits or the number is already in your account, and 409 when it belongs to another organization. Responds 201. Assign an agent afterwards with Update Phone Number.\n\nDocs: https://docs.vinsi.ai/api-docs/phone-number-create",
        "operationId": "phoneNumberCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "phoneNumber": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "phoneNumber": {
                          "type": "string"
                        },
                        "providerId": {
                          "type": "string"
                        },
                        "provider": {
                          "type": "string"
                        },
                        "orderId": {
                          "type": "string"
                        },
                        "orderStatus": {
                          "type": "string"
                        },
                        "livekitTrunkId": {
                          "type": "string"
                        },
                        "livekitTrunkConfigured": {
                          "type": "boolean"
                        },
                        "dispatchRuleId": {}
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "phoneNumber": {
                    "id": "phn_1757964000123_k2j4h5g6f",
                    "phoneNumber": "+16195550123",
                    "providerId": "2468013579246801357",
                    "provider": "telnyx",
                    "orderId": "3f1b2c4d-0000-4000-8000-000000000001",
                    "orderStatus": "success",
                    "livekitTrunkId": "ST_exampleTrunk01",
                    "livekitTrunkConfigured": true,
                    "dispatchRuleId": null
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phoneNumber": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "phoneNumber": "+16195550123"
              }
            }
          }
        }
      }
    },
    "/api/phone-numbers/{phoneNumberId}": {
      "get": {
        "summary": "Get Phone Number by ID",
        "description": "Fetch a single phone number in your organization, with the assigned agent. Returns 404 if the number does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/phone-number-id",
        "operationId": "phoneNumberId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "phoneNumberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "phn_1757964000123_k2j4h5g6f"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "phoneNumber": {
                      "type": "string"
                    },
                    "friendlyName": {
                      "type": "string"
                    },
                    "providerId": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "capabilities": {
                      "type": "string"
                    },
                    "agentId": {
                      "type": "string"
                    },
                    "fallbackNumber": {},
                    "isActive": {
                      "type": "boolean"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "SIPUserName": {},
                    "SIPPassword": {},
                    "SIPTerminationURI": {},
                    "livekitTrunkConfigured": {
                      "type": "boolean"
                    },
                    "trunkName": {
                      "type": "string"
                    },
                    "livekitTrunkId": {
                      "type": "string"
                    },
                    "livekitOutboundTrunkId": {},
                    "livekitOutboundConfigured": {},
                    "stripeSubscriptionId": {},
                    "routingMode": {
                      "type": "string"
                    },
                    "routingDeskPhoneId": {},
                    "voicemailEnabled": {
                      "type": "boolean"
                    },
                    "voicemailPin": {},
                    "huntGroupId": {},
                    "queueId": {},
                    "queuePriority": {},
                    "livekitCluster": {
                      "type": "string"
                    },
                    "agent": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "integrations": {},
                        "isAfterHoursFallback": {
                          "type": "boolean"
                        },
                        "routeOutboundVia": {
                          "type": "string"
                        },
                        "defaultOutboundPhoneNumberId": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": "phn_1757964000123_k2j4h5g6f",
                  "phoneNumber": "+15555550199",
                  "friendlyName": "Main Line",
                  "providerId": "2468013579246801357",
                  "provider": "telnyx",
                  "capabilities": "{\"voice\":true,\"sms\":true}",
                  "agentId": "cmexampleagent000000000001",
                  "fallbackNumber": null,
                  "isActive": true,
                  "userId": "cmexampleuser0000000000001",
                  "organizationId": "cmexampleorg00000000000001",
                  "createdAt": "2026-09-01T18:00:00.000Z",
                  "updatedAt": "2026-09-10T21:14:00.000Z",
                  "SIPUserName": null,
                  "SIPPassword": null,
                  "SIPTerminationURI": null,
                  "livekitTrunkConfigured": true,
                  "trunkName": "Main Line",
                  "livekitTrunkId": "ST_exampleTrunk01",
                  "livekitOutboundTrunkId": null,
                  "livekitOutboundConfigured": null,
                  "stripeSubscriptionId": null,
                  "routingMode": "agent",
                  "routingDeskPhoneId": null,
                  "voicemailEnabled": false,
                  "voicemailPin": null,
                  "huntGroupId": null,
                  "queueId": null,
                  "queuePriority": null,
                  "livekitCluster": "vinsi-do",
                  "agent": {
                    "id": "cmexampleagent000000000001",
                    "name": "Front Desk Agent",
                    "integrations": null,
                    "isAfterHoursFallback": false,
                    "routeOutboundVia": "telnyx",
                    "defaultOutboundPhoneNumberId": "phn_1757964000123_k2j4h5g6f"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Phone Number",
        "description": "Assign an agent to a phone number (or send agentId as null to unassign it) and set its fallback number. Assigning an agent also updates carrier and LiveKit routing so inbound calls reach that agent. The agent must belong to your organization. Returns the updated phone number; warnings lists any routing steps that did not complete.\n\nDocs: https://docs.vinsi.ai/api-docs/phone-number-update",
        "operationId": "phoneNumberUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "phoneNumberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "phn_1757964000123_k2j4h5g6f"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "phoneNumber": {
                      "type": "string"
                    },
                    "friendlyName": {
                      "type": "string"
                    },
                    "providerId": {
                      "type": "string"
                    },
                    "provider": {
                      "type": "string"
                    },
                    "capabilities": {
                      "type": "string"
                    },
                    "agentId": {
                      "type": "string"
                    },
                    "fallbackNumber": {
                      "type": "string"
                    },
                    "isActive": {
                      "type": "boolean"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "SIPUserName": {},
                    "SIPPassword": {},
                    "SIPTerminationURI": {},
                    "livekitTrunkConfigured": {
                      "type": "boolean"
                    },
                    "trunkName": {
                      "type": "string"
                    },
                    "livekitTrunkId": {
                      "type": "string"
                    },
                    "livekitOutboundTrunkId": {},
                    "livekitOutboundConfigured": {},
                    "stripeSubscriptionId": {},
                    "routingMode": {
                      "type": "string"
                    },
                    "routingDeskPhoneId": {},
                    "voicemailEnabled": {
                      "type": "boolean"
                    },
                    "voicemailPin": {},
                    "huntGroupId": {},
                    "queueId": {},
                    "queuePriority": {},
                    "livekitCluster": {
                      "type": "string"
                    },
                    "agent": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "isAfterHoursFallback": {
                          "type": "boolean"
                        },
                        "routeOutboundVia": {
                          "type": "string"
                        }
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {}
                    }
                  }
                },
                "example": {
                  "id": "phn_1757964000123_k2j4h5g6f",
                  "phoneNumber": "+15555550199",
                  "friendlyName": "Main Line",
                  "providerId": "2468013579246801357",
                  "provider": "telnyx",
                  "capabilities": "{\"voice\":true,\"sms\":true}",
                  "agentId": "cmexampleagent000000000001",
                  "fallbackNumber": "+15555550100",
                  "isActive": true,
                  "userId": "cmexampleuser0000000000001",
                  "organizationId": "cmexampleorg00000000000001",
                  "createdAt": "2026-09-01T18:00:00.000Z",
                  "updatedAt": "2026-09-10T21:14:00.000Z",
                  "SIPUserName": null,
                  "SIPPassword": null,
                  "SIPTerminationURI": null,
                  "livekitTrunkConfigured": true,
                  "trunkName": "Main Line",
                  "livekitTrunkId": "ST_exampleTrunk01",
                  "livekitOutboundTrunkId": null,
                  "livekitOutboundConfigured": null,
                  "stripeSubscriptionId": null,
                  "routingMode": "agent",
                  "routingDeskPhoneId": null,
                  "voicemailEnabled": false,
                  "voicemailPin": null,
                  "huntGroupId": null,
                  "queueId": null,
                  "queuePriority": null,
                  "livekitCluster": "vinsi-do",
                  "agent": {
                    "id": "cmexampleagent000000000001",
                    "name": "Front Desk Agent",
                    "isAfterHoursFallback": false,
                    "routeOutboundVia": "telnyx"
                  },
                  "warnings": []
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string"
                  },
                  "fallbackNumber": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "agentId": "cmexampleagent000000000001",
                "fallbackNumber": "+15555550100"
              }
            }
          }
        }
      }
    },
    "/api/phone-numbers/available": {
      "get": {
        "summary": "Get Phone Numbers by Area Code",
        "description": "Search for local phone numbers available to purchase in a 3-digit area code (up to 100 results with voice and SMS). countryCode defaults to US. Purchase one with Create Phone Number.\n\nDocs: https://docs.vinsi.ai/api-docs/phone-numbers-area-code",
        "operationId": "phoneNumbersAreaCode",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "areaCode",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "619"
          },
          {
            "name": "countryCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "US"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "numbers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "numbersDetailed": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "phoneNumber": {
                            "type": "string"
                          },
                          "friendlyName": {
                            "type": "string"
                          },
                          "locality": {
                            "type": "string"
                          },
                          "region": {
                            "type": "string"
                          },
                          "postalCode": {},
                          "rateCenter": {
                            "type": "string"
                          },
                          "isoCountry": {
                            "type": "string"
                          },
                          "capabilities": {
                            "type": "object",
                            "properties": {
                              "voice": {
                                "type": "boolean"
                              },
                              "sms": {
                                "type": "boolean"
                              },
                              "mms": {
                                "type": "boolean"
                              },
                              "fax": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    },
                    "isTollFree": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "numbers": [
                    "+16195550123"
                  ],
                  "numbersDetailed": [
                    {
                      "phoneNumber": "+16195550123",
                      "friendlyName": "+16195550123",
                      "locality": "SAN DIEGO",
                      "region": "CA",
                      "postalCode": null,
                      "rateCenter": "SAN DIEGO",
                      "isoCountry": "US",
                      "capabilities": {
                        "voice": true,
                        "sms": true,
                        "mms": false,
                        "fax": false
                      }
                    }
                  ],
                  "isTollFree": false
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/crm/contacts": {
      "get": {
        "summary": "Get Contacts",
        "description": "List CRM contacts in your organization. Send paginated=true for a paged response ({ items, total, page, pageSize, counts }); without it the endpoint returns a plain array of the newest 1,000 contacts (10,000 with lite=true). Paged filters: search (name, email, phone, company, title, state, source, address), activeTab (leads | customers | archived | my | all, default leads), filterLeadStatus / filterType / filterSource (comma-separated lists), filterOwner (user ID, or __unassigned__), filterDisposition, filterCreated (today | week | month | 3months, applied to lastWorkDate), companyId, sortBy (contactName, email, phone, title, company, state, leadStatus, type, disposition, source, createdAt, updatedAt, lastWorkDate, assignedTo), sortDir (asc | desc). pageSize defaults to 10 and is capped at 100 (500 with lite=true, which returns a smaller set of fields).\n\nDocs: https://docs.vinsi.ai/api-docs/crm-contacts",
        "operationId": "crmContacts",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "paginated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "true"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "25"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "morgan"
          },
          {
            "name": "activeTab",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "leads"
          },
          {
            "name": "filterLeadStatus",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "New,Contacted"
          },
          {
            "name": "filterType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "lead"
          },
          {
            "name": "filterSource",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "Website"
          },
          {
            "name": "filterOwner",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "cmexampleuser0000000000001"
          },
          {
            "name": "filterDisposition",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "Callback Requested"
          },
          {
            "name": "filterCreated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "month"
          },
          {
            "name": "companyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "318"
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "createdAt"
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "desc"
          },
          {
            "name": "lite",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "false"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "phone": {
                            "type": "string"
                          },
                          "company": {
                            "type": "string"
                          },
                          "leadStatus": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string"
                          },
                          "ownerId": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string"
                          },
                          "ext": {
                            "type": "string"
                          },
                          "disposition": {
                            "type": "string"
                          },
                          "lastWorkDate": {},
                          "state": {
                            "type": "string"
                          },
                          "phone2": {
                            "type": "string"
                          },
                          "phone2Ext": {
                            "type": "string"
                          },
                          "phone3": {
                            "type": "string"
                          },
                          "phone3Ext": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "isUnsubscribed": {
                            "type": "boolean"
                          },
                          "unsubscribedAt": {},
                          "email2": {
                            "type": "string"
                          },
                          "companyId": {
                            "type": "integer"
                          },
                          "address": {
                            "type": "string"
                          },
                          "city": {
                            "type": "string"
                          },
                          "zip": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          },
                          "avatarUrl": {}
                        }
                      }
                    },
                    "total": {
                      "type": "integer"
                    },
                    "page": {
                      "type": "integer"
                    },
                    "pageSize": {
                      "type": "integer"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "my": {
                          "type": "integer"
                        },
                        "all": {
                          "type": "integer"
                        },
                        "leads": {
                          "type": "integer"
                        },
                        "customers": {
                          "type": "integer"
                        },
                        "archived": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "items": [
                    {
                      "id": 1042,
                      "firstName": "Alex",
                      "lastName": "Morgan",
                      "email": "alex.morgan@example.com",
                      "phone": "+15555550142",
                      "company": "Acme Dental",
                      "leadStatus": "New",
                      "type": "lead",
                      "source": "Website",
                      "ownerId": "cmexampleuser0000000000001",
                      "createdAt": "2026-09-10T17:22:57.000Z",
                      "updatedAt": "2026-09-12T15:04:11.000Z",
                      "ext": "",
                      "disposition": "",
                      "lastWorkDate": null,
                      "state": "CA",
                      "phone2": "",
                      "phone2Ext": "",
                      "phone3": "",
                      "phone3Ext": "",
                      "title": "Office Manager",
                      "isUnsubscribed": false,
                      "unsubscribedAt": null,
                      "email2": "",
                      "companyId": 318,
                      "address": "100 Main St",
                      "city": "San Diego",
                      "zip": "92101",
                      "country": "US",
                      "avatarUrl": null
                    }
                  ],
                  "total": 1,
                  "page": 1,
                  "pageSize": 25,
                  "counts": {
                    "my": 1,
                    "all": 214,
                    "leads": 180,
                    "customers": 30,
                    "archived": 4
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Contact",
        "description": "Create a CRM contact. No field is strictly required; when email is empty a placeholder address is stored. Defaults: leadStatus New, type lead, source Website. companyId must be a company in your organization (the company name is then copied from it) and ownerId must be a user in your organization (otherwise it is ignored). dedupBy controls duplicate detection: email (default), name, company, phone, or none. A duplicate returns 409. Responds 201 with the created contact and runs any contact_created CRM workflows.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-contact-create",
        "operationId": "crmContactCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "firstName": {
                      "type": "string"
                    },
                    "lastName": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "leadStatus": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "notes": {
                      "type": "string"
                    },
                    "ownerId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "ext": {
                      "type": "string"
                    },
                    "disposition": {
                      "type": "string"
                    },
                    "lastWorkDate": {},
                    "state": {
                      "type": "string"
                    },
                    "phone2": {
                      "type": "string"
                    },
                    "phone2Ext": {
                      "type": "string"
                    },
                    "phone3": {
                      "type": "string"
                    },
                    "phone3Ext": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "isUnsubscribed": {
                      "type": "boolean"
                    },
                    "unsubscribedAt": {},
                    "email2": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "address": {
                      "type": "string"
                    },
                    "city": {
                      "type": "string"
                    },
                    "zip": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "avatarUrl": {},
                    "phoneNorm": {
                      "type": "string"
                    },
                    "phone2Norm": {},
                    "phone3Norm": {}
                  }
                },
                "example": {
                  "id": 1042,
                  "organizationId": "cmexampleorg00000000000001",
                  "firstName": "Alex",
                  "lastName": "Morgan",
                  "email": "alex.morgan@example.com",
                  "phone": "+15555550142",
                  "company": "Acme Dental",
                  "leadStatus": "New",
                  "type": "lead",
                  "source": "Website",
                  "notes": "Asked for a callback next week.",
                  "ownerId": "cmexampleuser0000000000001",
                  "createdAt": "2026-09-10T17:22:57.000Z",
                  "updatedAt": "2026-09-12T15:04:11.000Z",
                  "ext": "",
                  "disposition": "",
                  "lastWorkDate": null,
                  "state": "CA",
                  "phone2": "",
                  "phone2Ext": "",
                  "phone3": "",
                  "phone3Ext": "",
                  "title": "Office Manager",
                  "isUnsubscribed": false,
                  "unsubscribedAt": null,
                  "email2": "",
                  "companyId": 318,
                  "address": "100 Main St",
                  "city": "San Diego",
                  "zip": "92101",
                  "country": "US",
                  "avatarUrl": null,
                  "phoneNorm": "5555550142",
                  "phone2Norm": null,
                  "phone3Norm": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "firstName": {
                    "type": "string"
                  },
                  "lastName": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "ext": {
                    "type": "string"
                  },
                  "email2": {
                    "type": "string"
                  },
                  "phone2": {
                    "type": "string"
                  },
                  "phone2Ext": {
                    "type": "string"
                  },
                  "phone3": {
                    "type": "string"
                  },
                  "phone3Ext": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "company": {
                    "type": "string"
                  },
                  "companyId": {
                    "type": "integer"
                  },
                  "leadStatus": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "disposition": {
                    "type": "string"
                  },
                  "ownerId": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  },
                  "zip": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  },
                  "dedupBy": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "firstName": "Alex",
                "lastName": "Morgan",
                "email": "alex.morgan@example.com",
                "phone": "+15555550142",
                "ext": "",
                "email2": "",
                "phone2": "",
                "phone2Ext": "",
                "phone3": "",
                "phone3Ext": "",
                "title": "Office Manager",
                "company": "Acme Dental",
                "companyId": 318,
                "leadStatus": "New",
                "type": "lead",
                "source": "Website",
                "disposition": "",
                "ownerId": "cmexampleuser0000000000001",
                "address": "100 Main St",
                "city": "San Diego",
                "state": "CA",
                "zip": "92101",
                "country": "US",
                "notes": "Asked for a callback next week.",
                "dedupBy": "email"
              }
            }
          }
        }
      }
    },
    "/api/crm/contacts/{contactId}": {
      "get": {
        "summary": "Get Contact by ID",
        "description": "Fetch a single CRM contact by its numeric ID. Returns 404 if the contact does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-contact-id",
        "operationId": "crmContactId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1042"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "firstName": {
                      "type": "string"
                    },
                    "lastName": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "leadStatus": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "notes": {
                      "type": "string"
                    },
                    "ownerId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "ext": {
                      "type": "string"
                    },
                    "disposition": {
                      "type": "string"
                    },
                    "lastWorkDate": {},
                    "state": {
                      "type": "string"
                    },
                    "phone2": {
                      "type": "string"
                    },
                    "phone2Ext": {
                      "type": "string"
                    },
                    "phone3": {
                      "type": "string"
                    },
                    "phone3Ext": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "isUnsubscribed": {
                      "type": "boolean"
                    },
                    "unsubscribedAt": {},
                    "email2": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "address": {
                      "type": "string"
                    },
                    "city": {
                      "type": "string"
                    },
                    "zip": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "avatarUrl": {},
                    "phoneNorm": {
                      "type": "string"
                    },
                    "phone2Norm": {},
                    "phone3Norm": {}
                  }
                },
                "example": {
                  "id": 1042,
                  "organizationId": "cmexampleorg00000000000001",
                  "firstName": "Alex",
                  "lastName": "Morgan",
                  "email": "alex.morgan@example.com",
                  "phone": "+15555550142",
                  "company": "Acme Dental",
                  "leadStatus": "New",
                  "type": "lead",
                  "source": "Website",
                  "notes": "Asked for a callback next week.",
                  "ownerId": "cmexampleuser0000000000001",
                  "createdAt": "2026-09-10T17:22:57.000Z",
                  "updatedAt": "2026-09-12T15:04:11.000Z",
                  "ext": "",
                  "disposition": "",
                  "lastWorkDate": null,
                  "state": "CA",
                  "phone2": "",
                  "phone2Ext": "",
                  "phone3": "",
                  "phone3Ext": "",
                  "title": "Office Manager",
                  "isUnsubscribed": false,
                  "unsubscribedAt": null,
                  "email2": "",
                  "companyId": 318,
                  "address": "100 Main St",
                  "city": "San Diego",
                  "zip": "92101",
                  "country": "US",
                  "avatarUrl": null,
                  "phoneNorm": "5555550142",
                  "phone2Norm": null,
                  "phone3Norm": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Contact",
        "description": "Partially update a CRM contact. Only fields present in the body are changed. Setting disposition also sets lastWorkDate to now. Send companyId or ownerId as null to clear them. Changing email to one already used in your organization returns 409. Runs lead_status_changed, disposition_changed or contact_updated CRM workflows and returns the updated contact; _workflowDebug lists the workflows that ran.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-contact-update",
        "operationId": "crmContactUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1042"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "firstName": {
                      "type": "string"
                    },
                    "lastName": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "leadStatus": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "notes": {
                      "type": "string"
                    },
                    "ownerId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "ext": {
                      "type": "string"
                    },
                    "disposition": {
                      "type": "string"
                    },
                    "lastWorkDate": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "phone2": {
                      "type": "string"
                    },
                    "phone2Ext": {
                      "type": "string"
                    },
                    "phone3": {
                      "type": "string"
                    },
                    "phone3Ext": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "isUnsubscribed": {
                      "type": "boolean"
                    },
                    "unsubscribedAt": {},
                    "email2": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "address": {
                      "type": "string"
                    },
                    "city": {
                      "type": "string"
                    },
                    "zip": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "avatarUrl": {},
                    "phoneNorm": {
                      "type": "string"
                    },
                    "phone2Norm": {},
                    "phone3Norm": {},
                    "_workflowDebug": {
                      "type": "array",
                      "items": {}
                    }
                  }
                },
                "example": {
                  "id": 1042,
                  "organizationId": "cmexampleorg00000000000001",
                  "firstName": "Alex",
                  "lastName": "Morgan",
                  "email": "alex.morgan@example.com",
                  "phone": "+15555550142",
                  "company": "Acme Dental",
                  "leadStatus": "Contacted",
                  "type": "lead",
                  "source": "Website",
                  "notes": "Asked for a callback next week.",
                  "ownerId": "cmexampleuser0000000000001",
                  "createdAt": "2026-09-10T17:22:57.000Z",
                  "updatedAt": "2026-09-16T16:40:00.000Z",
                  "ext": "",
                  "disposition": "Callback Requested",
                  "lastWorkDate": "2026-09-16T16:40:00.000Z",
                  "state": "CA",
                  "phone2": "",
                  "phone2Ext": "",
                  "phone3": "",
                  "phone3Ext": "",
                  "title": "Office Manager",
                  "isUnsubscribed": false,
                  "unsubscribedAt": null,
                  "email2": "",
                  "companyId": 318,
                  "address": "100 Main St",
                  "city": "San Diego",
                  "zip": "92101",
                  "country": "US",
                  "avatarUrl": null,
                  "phoneNorm": "5555550142",
                  "phone2Norm": null,
                  "phone3Norm": null,
                  "_workflowDebug": []
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "firstName": {
                    "type": "string"
                  },
                  "lastName": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "ext": {
                    "type": "string"
                  },
                  "email2": {
                    "type": "string"
                  },
                  "phone2": {
                    "type": "string"
                  },
                  "phone2Ext": {
                    "type": "string"
                  },
                  "phone3": {
                    "type": "string"
                  },
                  "phone3Ext": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "company": {
                    "type": "string"
                  },
                  "companyId": {
                    "type": "integer"
                  },
                  "leadStatus": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "disposition": {
                    "type": "string"
                  },
                  "ownerId": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  },
                  "zip": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  },
                  "isUnsubscribed": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "firstName": "Alex",
                "lastName": "Morgan",
                "email": "alex.morgan@example.com",
                "phone": "+15555550142",
                "ext": "",
                "email2": "",
                "phone2": "",
                "phone2Ext": "",
                "phone3": "",
                "phone3Ext": "",
                "title": "Office Manager",
                "company": "Acme Dental",
                "companyId": 318,
                "leadStatus": "Contacted",
                "type": "lead",
                "source": "Website",
                "disposition": "Callback Requested",
                "ownerId": "cmexampleuser0000000000001",
                "address": "100 Main St",
                "city": "San Diego",
                "state": "CA",
                "zip": "92101",
                "country": "US",
                "notes": "Asked for a callback next week.",
                "isUnsubscribed": false
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Contact",
        "description": "Permanently delete a CRM contact. Returns 404 if the contact does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-contact-delete",
        "operationId": "crmContactDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1042"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/crm/contacts/lookup-by-phone": {
      "get": {
        "summary": "Find Contact by Phone",
        "description": "Find the first CRM contact whose phone, phone2 or phone3 matches the given number. Matching uses the last 10 digits, so formatting and country code are ignored (at least 7 digits are required). Returns 404 when no contact matches. lastAICallDisposition is the disposition of an AI call to that number that was transferred in the last 2 minutes, or null.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-contact-lookup-by-phone",
        "operationId": "crmContactLookupByPhone",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "+15555550142"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "firstName": {
                      "type": "string"
                    },
                    "lastName": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "company": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "phone2": {
                      "type": "string"
                    },
                    "phone3": {
                      "type": "string"
                    },
                    "lastAICallDisposition": {}
                  }
                },
                "example": {
                  "id": 1042,
                  "firstName": "Alex",
                  "lastName": "Morgan",
                  "email": "alex.morgan@example.com",
                  "company": "Acme Dental",
                  "phone": "+15555550142",
                  "phone2": "",
                  "phone3": "",
                  "lastAICallDisposition": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/crm/companies": {
      "get": {
        "summary": "Get Companies",
        "description": "List CRM companies in your organization. Send paginated=true for a paged response ({ items, total, page, pageSize, counts }) where each item includes customFieldValues keyed by custom tab ID; without it the endpoint returns a plain array of the newest 1,000 companies (lite=true returns fewer fields). Paged filters: search (name, industry, email, phone, address fields and custom field values), activeTab (all | my | ours | prospects, default all), filterType and filterIndustry (comma-separated lists), filterCreated (today | week | month | 3months), sortBy (name, industry, type, city, createdAt, updatedAt, email, phone, website, address, zip, country), sortDir (asc | desc, default desc). pageSize defaults to 25, max 100.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-companies",
        "operationId": "crmCompanies",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "paginated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "true"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "25"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "acme"
          },
          {
            "name": "activeTab",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "all"
          },
          {
            "name": "filterType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "prospect"
          },
          {
            "name": "filterIndustry",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "Healthcare"
          },
          {
            "name": "filterCreated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "month"
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "name"
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "asc"
          },
          {
            "name": "lite",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "false"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          },
                          "industry": {
                            "type": "string"
                          },
                          "website": {
                            "type": "string"
                          },
                          "phone": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "address": {
                            "type": "string"
                          },
                          "city": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string"
                          },
                          "zip": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "ownerId": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string"
                          },
                          "primaryContactId": {
                            "type": "integer"
                          },
                          "logoUrl": {},
                          "customFieldValues": {
                            "type": "object",
                            "properties": {
                              "12": {
                                "type": "object",
                                "properties": {
                                  "Number of Locations": {
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "integer"
                    },
                    "page": {
                      "type": "integer"
                    },
                    "pageSize": {
                      "type": "integer"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "my": {
                          "type": "integer"
                        },
                        "all": {
                          "type": "integer"
                        },
                        "ours": {
                          "type": "integer"
                        },
                        "prospects": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "items": [
                    {
                      "id": 318,
                      "name": "Acme Dental",
                      "industry": "Healthcare",
                      "website": "https://acme-dental.example.com",
                      "phone": "+15555550100",
                      "email": "info@acme-dental.example.com",
                      "address": "100 Main St",
                      "city": "San Diego",
                      "state": "CA",
                      "zip": "92101",
                      "country": "US",
                      "type": "prospect",
                      "ownerId": "cmexampleuser0000000000001",
                      "createdAt": "2026-09-01T18:30:00.000Z",
                      "updatedAt": "2026-09-01T18:30:00.000Z",
                      "primaryContactId": 1042,
                      "logoUrl": null,
                      "customFieldValues": {
                        "12": {
                          "Number of Locations": "3"
                        }
                      }
                    }
                  ],
                  "total": 1,
                  "page": 1,
                  "pageSize": 25,
                  "counts": {
                    "my": 1,
                    "all": 42,
                    "ours": 12,
                    "prospects": 30
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Company",
        "description": "Create a CRM company. name is required. type defaults to prospect. The owner is set to the user who owns the API key. If primaryContactId points at a contact with no company yet, that contact is linked to the new company (linkedContactsCount). Responds 201.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-company-create",
        "operationId": "crmCompanyCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "industry": {
                      "type": "string"
                    },
                    "website": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "ext": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "address": {
                      "type": "string"
                    },
                    "city": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "zip": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "notes": {},
                    "ownerId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "primaryContactId": {
                      "type": "integer"
                    },
                    "reviewRating": {
                      "type": "string"
                    },
                    "reviewCount": {
                      "type": "string"
                    },
                    "logoUrl": {},
                    "linkedContactsCount": {
                      "type": "integer"
                    }
                  }
                },
                "example": {
                  "id": 318,
                  "organizationId": "cmexampleorg00000000000001",
                  "name": "Acme Dental",
                  "industry": "Healthcare",
                  "website": "https://acme-dental.example.com",
                  "phone": "+15555550100",
                  "ext": "",
                  "email": "info@acme-dental.example.com",
                  "address": "100 Main St",
                  "city": "San Diego",
                  "state": "CA",
                  "zip": "92101",
                  "country": "US",
                  "type": "prospect",
                  "notes": null,
                  "ownerId": "cmexampleuser0000000000001",
                  "createdAt": "2026-09-01T18:30:00.000Z",
                  "updatedAt": "2026-09-01T18:30:00.000Z",
                  "primaryContactId": 1042,
                  "reviewRating": "",
                  "reviewCount": "",
                  "logoUrl": null,
                  "linkedContactsCount": 1
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "industry": {
                    "type": "string"
                  },
                  "website": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "ext": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  },
                  "zip": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  },
                  "primaryContactId": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "name": "Acme Dental",
                "industry": "Healthcare",
                "website": "https://acme-dental.example.com",
                "phone": "+15555550100",
                "ext": "",
                "email": "info@acme-dental.example.com",
                "address": "100 Main St",
                "city": "San Diego",
                "state": "CA",
                "zip": "92101",
                "country": "US",
                "type": "prospect",
                "notes": "",
                "primaryContactId": 1042
              }
            }
          }
        }
      }
    },
    "/api/crm/companies/{companyId}": {
      "get": {
        "summary": "Get Company by ID",
        "description": "Fetch a single CRM company by its numeric ID. Returns 404 if the company does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-company-id",
        "operationId": "crmCompanyId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "318"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "industry": {
                      "type": "string"
                    },
                    "website": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "ext": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "address": {
                      "type": "string"
                    },
                    "city": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "zip": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "notes": {},
                    "ownerId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "primaryContactId": {
                      "type": "integer"
                    },
                    "reviewRating": {
                      "type": "string"
                    },
                    "reviewCount": {
                      "type": "string"
                    },
                    "logoUrl": {}
                  }
                },
                "example": {
                  "id": 318,
                  "organizationId": "cmexampleorg00000000000001",
                  "name": "Acme Dental",
                  "industry": "Healthcare",
                  "website": "https://acme-dental.example.com",
                  "phone": "+15555550100",
                  "ext": "",
                  "email": "info@acme-dental.example.com",
                  "address": "100 Main St",
                  "city": "San Diego",
                  "state": "CA",
                  "zip": "92101",
                  "country": "US",
                  "type": "prospect",
                  "notes": null,
                  "ownerId": "cmexampleuser0000000000001",
                  "createdAt": "2026-09-01T18:30:00.000Z",
                  "updatedAt": "2026-09-01T18:30:00.000Z",
                  "primaryContactId": 1042,
                  "reviewRating": "",
                  "reviewCount": "",
                  "logoUrl": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Company",
        "description": "Partially update a CRM company. Only fields present in the body are changed. ownerId must be a user in your organization; send it (or primaryContactId) as null to clear it. Returns the updated company.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-company-update",
        "operationId": "crmCompanyUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "318"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "industry": {
                      "type": "string"
                    },
                    "website": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "ext": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "address": {
                      "type": "string"
                    },
                    "city": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "zip": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "notes": {},
                    "ownerId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "primaryContactId": {
                      "type": "integer"
                    },
                    "reviewRating": {
                      "type": "string"
                    },
                    "reviewCount": {
                      "type": "string"
                    },
                    "logoUrl": {}
                  }
                },
                "example": {
                  "id": 318,
                  "organizationId": "cmexampleorg00000000000001",
                  "name": "Acme Dental",
                  "industry": "Healthcare",
                  "website": "https://acme-dental.example.com",
                  "phone": "+15555550100",
                  "ext": "",
                  "email": "info@acme-dental.example.com",
                  "address": "100 Main St",
                  "city": "San Diego",
                  "state": "CA",
                  "zip": "92101",
                  "country": "US",
                  "type": "client",
                  "notes": null,
                  "ownerId": "cmexampleuser0000000000001",
                  "createdAt": "2026-09-01T18:30:00.000Z",
                  "updatedAt": "2026-09-16T16:40:00.000Z",
                  "primaryContactId": 1042,
                  "reviewRating": "",
                  "reviewCount": "",
                  "logoUrl": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "industry": {
                    "type": "string"
                  },
                  "website": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "ext": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  },
                  "zip": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  },
                  "primaryContactId": {
                    "type": "integer"
                  },
                  "ownerId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "Acme Dental",
                "industry": "Healthcare",
                "website": "https://acme-dental.example.com",
                "phone": "+15555550100",
                "ext": "",
                "email": "info@acme-dental.example.com",
                "address": "100 Main St",
                "city": "San Diego",
                "state": "CA",
                "zip": "92101",
                "country": "US",
                "type": "client",
                "notes": "",
                "primaryContactId": 1042,
                "ownerId": "cmexampleuser0000000000001"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Company",
        "description": "Delete a CRM company. Linked contacts are kept and unlinked. If activities, deals, engagements or invoices reference the company the request fails with 409 and a blockers object ({ activities, deals, engagements, invoices }) unless cascade=true, which unlinks those records and deletes the company.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-company-delete",
        "operationId": "crmCompanyDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "318"
          },
          {
            "name": "cascade",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "true"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/crm/deals": {
      "get": {
        "summary": "Get Deals",
        "description": "List CRM deals in your organization with owner, contact and company names. Send paginated=true for a paged response that also includes counts and totals (pipeline amount, MRR, annual); without it the endpoint returns a plain array of every deal. Paged filters: search (deal name), activeTab (open | won | lost | my | all, default open), filterStage, filterPriority and filterDealType (comma-separated lists), filterCreated (today | week | month | 3months), sortBy (dealName, dealStage, amount, amountEffective, closeDate, priority, pipeline, createdAt, updatedAt), sortDir (asc | desc, default desc). pageSize defaults to 25, max 100.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-deals",
        "operationId": "crmDeals",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "paginated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "true"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "25"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "annual"
          },
          {
            "name": "activeTab",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "open"
          },
          {
            "name": "filterStage",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "Appointment Scheduled"
          },
          {
            "name": "filterPriority",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "High"
          },
          {
            "name": "filterDealType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "New Business"
          },
          {
            "name": "filterCreated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "month"
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "amount"
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "desc"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "dealName": {
                            "type": "string"
                          },
                          "dealStage": {
                            "type": "string"
                          },
                          "pipeline": {
                            "type": "string"
                          },
                          "dealType": {
                            "type": "string"
                          },
                          "priority": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "integer"
                          },
                          "type": {
                            "type": "string"
                          },
                          "billingFrequency": {},
                          "recurringAmount": {},
                          "closeDate": {
                            "type": "string"
                          },
                          "contactId": {
                            "type": "integer"
                          },
                          "companyId": {
                            "type": "integer"
                          },
                          "dealOwnerId": {
                            "type": "string"
                          },
                          "organizationId": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string"
                          },
                          "dealOwnerName": {
                            "type": "string"
                          },
                          "contactName": {
                            "type": "string"
                          },
                          "companyName": {
                            "type": "string"
                          },
                          "companyLogoUrl": {},
                          "hasEngagement": {
                            "type": "boolean"
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "integer"
                    },
                    "page": {
                      "type": "integer"
                    },
                    "pageSize": {
                      "type": "integer"
                    },
                    "counts": {
                      "type": "object",
                      "properties": {
                        "my": {
                          "type": "integer"
                        },
                        "all": {
                          "type": "integer"
                        },
                        "open": {
                          "type": "integer"
                        },
                        "won": {
                          "type": "integer"
                        },
                        "lost": {
                          "type": "integer"
                        }
                      }
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "pipeline": {
                          "type": "integer"
                        },
                        "mrr": {
                          "type": "integer"
                        },
                        "annual": {
                          "type": "integer"
                        },
                        "seats": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "items": [
                    {
                      "id": 77,
                      "dealName": "Acme Dental - Annual Plan",
                      "dealStage": "Appointment Scheduled",
                      "pipeline": "Sales Pipeline",
                      "dealType": "New Business",
                      "priority": "High",
                      "amount": 12000,
                      "type": "one-time",
                      "billingFrequency": null,
                      "recurringAmount": null,
                      "closeDate": "2026-10-31T00:00:00.000Z",
                      "contactId": 1042,
                      "companyId": 318,
                      "dealOwnerId": "cmexampleuser0000000000001",
                      "organizationId": "cmexampleorg00000000000001",
                      "createdAt": "2026-09-05T16:00:00.000Z",
                      "updatedAt": "2026-09-05T16:00:00.000Z",
                      "dealOwnerName": "Jane Doe",
                      "contactName": "Alex Morgan",
                      "companyName": "Acme Dental",
                      "companyLogoUrl": null,
                      "hasEngagement": false
                    }
                  ],
                  "total": 1,
                  "page": 1,
                  "pageSize": 25,
                  "counts": {
                    "my": 1,
                    "all": 20,
                    "open": 14,
                    "won": 4,
                    "lost": 2
                  },
                  "totals": {
                    "pipeline": 12000,
                    "mrr": 0,
                    "annual": 0,
                    "seats": 0
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Deal",
        "description": "Create a CRM deal. dealName is required. Defaults: pipeline Sales Pipeline, dealStage Appointment Scheduled, type one-time. For recurring deals set type to recurring with billingFrequency (Monthly, Quarterly, Semi-Annual, Annual) and recurringAmount. A deal created in a won stage must include amount (or recurringAmount for recurring deals), otherwise 400. Responds 201 and runs deal_created CRM workflows.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-deal-create",
        "operationId": "crmDealCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dealName": {
                      "type": "string"
                    },
                    "pipeline": {
                      "type": "string"
                    },
                    "dealStage": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "closeDate": {
                      "type": "string"
                    },
                    "dealOwnerId": {
                      "type": "string"
                    },
                    "dealType": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "contactId": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "billingFrequency": {},
                    "recurringAmount": {}
                  }
                },
                "example": {
                  "id": 77,
                  "organizationId": "cmexampleorg00000000000001",
                  "dealName": "Acme Dental - Annual Plan",
                  "pipeline": "Sales Pipeline",
                  "dealStage": "Appointment Scheduled",
                  "amount": 12000,
                  "closeDate": "2026-10-31T00:00:00.000Z",
                  "dealOwnerId": "cmexampleuser0000000000001",
                  "dealType": "New Business",
                  "priority": "High",
                  "contactId": 1042,
                  "companyId": 318,
                  "createdAt": "2026-09-05T16:00:00.000Z",
                  "updatedAt": "2026-09-05T16:00:00.000Z",
                  "type": "one-time",
                  "billingFrequency": null,
                  "recurringAmount": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dealName": {
                    "type": "string"
                  },
                  "pipeline": {
                    "type": "string"
                  },
                  "dealStage": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer"
                  },
                  "closeDate": {
                    "type": "string"
                  },
                  "dealOwnerId": {
                    "type": "string"
                  },
                  "dealType": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "string"
                  },
                  "contactId": {
                    "type": "integer"
                  },
                  "companyId": {
                    "type": "integer"
                  },
                  "type": {
                    "type": "string"
                  },
                  "billingFrequency": {},
                  "recurringAmount": {}
                }
              },
              "example": {
                "dealName": "Acme Dental - Annual Plan",
                "pipeline": "Sales Pipeline",
                "dealStage": "Appointment Scheduled",
                "amount": 12000,
                "closeDate": "2026-10-31",
                "dealOwnerId": "cmexampleuser0000000000001",
                "dealType": "New Business",
                "priority": "High",
                "contactId": 1042,
                "companyId": 318,
                "type": "one-time",
                "billingFrequency": null,
                "recurringAmount": null
              }
            }
          }
        }
      }
    },
    "/api/crm/deals/{dealId}": {
      "get": {
        "summary": "Get Deal by ID",
        "description": "Fetch a single CRM deal by its numeric ID. Returns 404 if the deal does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-deal-id",
        "operationId": "crmDealId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "77"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dealName": {
                      "type": "string"
                    },
                    "pipeline": {
                      "type": "string"
                    },
                    "dealStage": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "closeDate": {
                      "type": "string"
                    },
                    "dealOwnerId": {
                      "type": "string"
                    },
                    "dealType": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "contactId": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "billingFrequency": {},
                    "recurringAmount": {}
                  }
                },
                "example": {
                  "id": 77,
                  "organizationId": "cmexampleorg00000000000001",
                  "dealName": "Acme Dental - Annual Plan",
                  "pipeline": "Sales Pipeline",
                  "dealStage": "Appointment Scheduled",
                  "amount": 12000,
                  "closeDate": "2026-10-31T00:00:00.000Z",
                  "dealOwnerId": "cmexampleuser0000000000001",
                  "dealType": "New Business",
                  "priority": "High",
                  "contactId": 1042,
                  "companyId": 318,
                  "createdAt": "2026-09-05T16:00:00.000Z",
                  "updatedAt": "2026-09-05T16:00:00.000Z",
                  "type": "one-time",
                  "billingFrequency": null,
                  "recurringAmount": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Deal",
        "description": "Partially update a CRM deal. Only fields present in the body are changed. Moving a deal into a won stage requires an amount (recurringAmount for recurring deals), otherwise 400 with the missing field. Changing dealStage runs deal_stage_changed CRM workflows. Returns the updated deal.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-deal-update",
        "operationId": "crmDealUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "77"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dealName": {
                      "type": "string"
                    },
                    "pipeline": {
                      "type": "string"
                    },
                    "dealStage": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "closeDate": {
                      "type": "string"
                    },
                    "dealOwnerId": {
                      "type": "string"
                    },
                    "dealType": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "contactId": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "billingFrequency": {},
                    "recurringAmount": {}
                  }
                },
                "example": {
                  "id": 77,
                  "organizationId": "cmexampleorg00000000000001",
                  "dealName": "Acme Dental - Annual Plan",
                  "pipeline": "Sales Pipeline",
                  "dealStage": "Closed Won",
                  "amount": 12000,
                  "closeDate": "2026-09-16T00:00:00.000Z",
                  "dealOwnerId": "cmexampleuser0000000000001",
                  "dealType": "New Business",
                  "priority": "High",
                  "contactId": 1042,
                  "companyId": 318,
                  "createdAt": "2026-09-05T16:00:00.000Z",
                  "updatedAt": "2026-09-16T16:40:00.000Z",
                  "type": "one-time",
                  "billingFrequency": null,
                  "recurringAmount": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dealStage": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer"
                  },
                  "closeDate": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "dealStage": "Closed Won",
                "amount": 12000,
                "closeDate": "2026-09-16"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Deal",
        "description": "Permanently delete a CRM deal. Returns 404 if the deal does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-deal-delete",
        "operationId": "crmDealDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "77"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/crm/activities": {
      "get": {
        "summary": "Get Activities",
        "description": "List every CRM activity in your organization, newest first, with requester, assignee, department, group, contact and company details. Optionally filter by contactId, companyId, dealId or engagementId. This endpoint is not paginated.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activities",
        "operationId": "crmActivities",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "contactId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1042"
          },
          {
            "name": "companyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "318"
          },
          {
            "name": "dealId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "77"
          },
          {
            "name": "engagementId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "activityNumber": {
                        "type": "string"
                      },
                      "subject": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "priority": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "source": {
                        "type": "string"
                      },
                      "dueBy": {
                        "type": "string"
                      },
                      "organizationId": {
                        "type": "string"
                      },
                      "requesterId": {
                        "type": "string"
                      },
                      "assignedToId": {
                        "type": "string"
                      },
                      "departmentId": {},
                      "groupId": {},
                      "tags": {
                        "type": "string"
                      },
                      "customFields": {
                        "type": "string"
                      },
                      "contactId": {
                        "type": "integer"
                      },
                      "companyId": {
                        "type": "integer"
                      },
                      "dealId": {
                        "type": "integer"
                      },
                      "engagementId": {},
                      "closedAt": {},
                      "resolvedAt": {},
                      "firstResponseAt": {},
                      "lastDueReminderAt": {},
                      "createdAt": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      },
                      "Requester": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          }
                        }
                      },
                      "AssignedTo": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          }
                        }
                      },
                      "Department": {},
                      "Group": {},
                      "Contact": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "phone": {
                            "type": "string"
                          }
                        }
                      },
                      "Company": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": [
                  {
                    "id": 5120,
                    "activityNumber": "ACT-00128-K3F9",
                    "subject": "Follow up on pricing question",
                    "description": "Customer asked for pricing on the annual plan. Send a quote.",
                    "status": "Open",
                    "priority": "Medium",
                    "type": "Task",
                    "source": "Portal",
                    "dueBy": "2026-09-18T17:00:00.000Z",
                    "organizationId": "cmexampleorg00000000000001",
                    "requesterId": "cmexampleuser0000000000001",
                    "assignedToId": "cmexampleuser0000000000002",
                    "departmentId": null,
                    "groupId": null,
                    "tags": "[\"pricing\"]",
                    "customFields": "{}",
                    "contactId": 1042,
                    "companyId": 318,
                    "dealId": 77,
                    "engagementId": null,
                    "closedAt": null,
                    "resolvedAt": null,
                    "firstResponseAt": null,
                    "lastDueReminderAt": null,
                    "createdAt": "2026-09-15T20:11:05.000Z",
                    "updatedAt": "2026-09-15T20:11:05.000Z",
                    "Requester": {
                      "id": "cmexampleuser0000000000001",
                      "firstName": "Jane",
                      "lastName": "Doe",
                      "email": "jane.doe@example.com"
                    },
                    "AssignedTo": {
                      "id": "cmexampleuser0000000000002",
                      "firstName": "Sam",
                      "lastName": "Rivera",
                      "email": "sam.rivera@example.com"
                    },
                    "Department": null,
                    "Group": null,
                    "Contact": {
                      "id": 1042,
                      "firstName": "Alex",
                      "lastName": "Morgan",
                      "email": "alex.morgan@example.com",
                      "phone": "+15555550142"
                    },
                    "Company": {
                      "id": 318,
                      "name": "Acme Dental"
                    }
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Activity",
        "description": "Create a CRM activity. subject and description are required. Defaults: priority Low, type Incident, source Portal, status Open. The requester is the user who owns the API key. dueBy accepts any date string; a year other than the current one is replaced with the current year and an unparseable value is ignored. tags is an array of strings. When assignedToId is set the assignee receives an assignment email. Responds 201 with the activity and its related records.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-create",
        "operationId": "crmActivityCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "activityNumber": {
                      "type": "string"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "dueBy": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "requesterId": {
                      "type": "string"
                    },
                    "assignedToId": {
                      "type": "string"
                    },
                    "departmentId": {},
                    "groupId": {},
                    "tags": {
                      "type": "string"
                    },
                    "customFields": {
                      "type": "string"
                    },
                    "contactId": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "dealId": {
                      "type": "integer"
                    },
                    "engagementId": {},
                    "closedAt": {},
                    "resolvedAt": {},
                    "firstResponseAt": {},
                    "lastDueReminderAt": {},
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "Requester": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "AssignedTo": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "Department": {},
                    "Group": {},
                    "Contact": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        },
                        "phone": {
                          "type": "string"
                        }
                      }
                    },
                    "Company": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": 5120,
                  "activityNumber": "ACT-00128-K3F9",
                  "subject": "Follow up on pricing question",
                  "description": "Customer asked for pricing on the annual plan. Send a quote.",
                  "status": "Open",
                  "priority": "Medium",
                  "type": "Task",
                  "source": "Portal",
                  "dueBy": "2026-09-18T17:00:00.000Z",
                  "organizationId": "cmexampleorg00000000000001",
                  "requesterId": "cmexampleuser0000000000001",
                  "assignedToId": "cmexampleuser0000000000002",
                  "departmentId": null,
                  "groupId": null,
                  "tags": "[\"pricing\"]",
                  "customFields": "{}",
                  "contactId": 1042,
                  "companyId": 318,
                  "dealId": 77,
                  "engagementId": null,
                  "closedAt": null,
                  "resolvedAt": null,
                  "firstResponseAt": null,
                  "lastDueReminderAt": null,
                  "createdAt": "2026-09-15T20:11:05.000Z",
                  "updatedAt": "2026-09-15T20:11:05.000Z",
                  "Requester": {
                    "id": "cmexampleuser0000000000001",
                    "firstName": "Jane",
                    "lastName": "Doe",
                    "email": "jane.doe@example.com"
                  },
                  "AssignedTo": {
                    "id": "cmexampleuser0000000000002",
                    "firstName": "Sam",
                    "lastName": "Rivera",
                    "email": "sam.rivera@example.com"
                  },
                  "Department": null,
                  "Group": null,
                  "Contact": {
                    "id": 1042,
                    "firstName": "Alex",
                    "lastName": "Morgan",
                    "email": "alex.morgan@example.com",
                    "phone": "+15555550142"
                  },
                  "Company": {
                    "id": 318,
                    "name": "Acme Dental"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "subject": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "dueBy": {
                    "type": "string"
                  },
                  "assignedToId": {
                    "type": "string"
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "contactId": {
                    "type": "integer"
                  },
                  "companyId": {
                    "type": "integer"
                  },
                  "dealId": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "subject": "Follow up on pricing question",
                "description": "Customer asked for pricing on the annual plan. Send a quote.",
                "priority": "Medium",
                "type": "Task",
                "source": "Portal",
                "dueBy": "2026-09-18T17:00:00.000Z",
                "assignedToId": "cmexampleuser0000000000002",
                "tags": [
                  "pricing"
                ],
                "contactId": 1042,
                "companyId": 318,
                "dealId": 77
              }
            }
          }
        }
      }
    },
    "/api/crm/activities/{activityId}": {
      "get": {
        "summary": "Get Activity by ID",
        "description": "Fetch a single CRM activity by its numeric ID, including its notes. Returns 404 if the activity does not exist in your organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-id",
        "operationId": "crmActivityId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "activityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5120"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "activityNumber": {
                      "type": "string"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "dueBy": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "requesterId": {
                      "type": "string"
                    },
                    "assignedToId": {
                      "type": "string"
                    },
                    "departmentId": {},
                    "groupId": {},
                    "tags": {
                      "type": "string"
                    },
                    "customFields": {
                      "type": "string"
                    },
                    "contactId": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "dealId": {
                      "type": "integer"
                    },
                    "engagementId": {},
                    "closedAt": {},
                    "resolvedAt": {},
                    "firstResponseAt": {},
                    "lastDueReminderAt": {},
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "Requester": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "AssignedTo": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "Department": {},
                    "Group": {},
                    "Contact": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        },
                        "phone": {
                          "type": "string"
                        }
                      }
                    },
                    "Company": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    },
                    "Notes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "activityId": {
                            "type": "integer"
                          },
                          "userId": {
                            "type": "string"
                          },
                          "body": {
                            "type": "string"
                          },
                          "isPrivate": {
                            "type": "boolean"
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string"
                          },
                          "User": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "firstName": {
                                "type": "string"
                              },
                              "lastName": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": 5120,
                  "activityNumber": "ACT-00128-K3F9",
                  "subject": "Follow up on pricing question",
                  "description": "Customer asked for pricing on the annual plan. Send a quote.",
                  "status": "Open",
                  "priority": "Medium",
                  "type": "Task",
                  "source": "Portal",
                  "dueBy": "2026-09-18T17:00:00.000Z",
                  "organizationId": "cmexampleorg00000000000001",
                  "requesterId": "cmexampleuser0000000000001",
                  "assignedToId": "cmexampleuser0000000000002",
                  "departmentId": null,
                  "groupId": null,
                  "tags": "[\"pricing\"]",
                  "customFields": "{}",
                  "contactId": 1042,
                  "companyId": 318,
                  "dealId": 77,
                  "engagementId": null,
                  "closedAt": null,
                  "resolvedAt": null,
                  "firstResponseAt": null,
                  "lastDueReminderAt": null,
                  "createdAt": "2026-09-15T20:11:05.000Z",
                  "updatedAt": "2026-09-15T20:11:05.000Z",
                  "Requester": {
                    "id": "cmexampleuser0000000000001",
                    "firstName": "Jane",
                    "lastName": "Doe",
                    "email": "jane.doe@example.com"
                  },
                  "AssignedTo": {
                    "id": "cmexampleuser0000000000002",
                    "firstName": "Sam",
                    "lastName": "Rivera",
                    "email": "sam.rivera@example.com"
                  },
                  "Department": null,
                  "Group": null,
                  "Contact": {
                    "id": 1042,
                    "firstName": "Alex",
                    "lastName": "Morgan",
                    "email": "alex.morgan@example.com",
                    "phone": "+15555550142"
                  },
                  "Company": {
                    "id": 318,
                    "name": "Acme Dental"
                  },
                  "Notes": [
                    {
                      "id": 3301,
                      "activityId": 5120,
                      "userId": "cmexampleuser0000000000002",
                      "body": "Left a voicemail, will try again tomorrow.",
                      "isPrivate": false,
                      "createdAt": "2026-09-15T22:00:00.000Z",
                      "updatedAt": "2026-09-15T22:00:00.000Z",
                      "User": {
                        "id": "cmexampleuser0000000000002",
                        "firstName": "Sam",
                        "lastName": "Rivera",
                        "email": "sam.rivera@example.com"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Activity",
        "description": "Partially update a CRM activity (PATCH is also accepted). Only fields present in the body are changed. Setting status to Resolved or Closed records resolvedAt or closedAt the first time. Reassigning with a new assignedToId emails the new assignee. Returns the updated activity with its related records.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-update",
        "operationId": "crmActivityUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "activityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5120"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "activityNumber": {
                      "type": "string"
                    },
                    "subject": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "dueBy": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "requesterId": {
                      "type": "string"
                    },
                    "assignedToId": {
                      "type": "string"
                    },
                    "departmentId": {},
                    "groupId": {},
                    "tags": {
                      "type": "string"
                    },
                    "customFields": {
                      "type": "string"
                    },
                    "contactId": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "dealId": {
                      "type": "integer"
                    },
                    "engagementId": {},
                    "closedAt": {},
                    "resolvedAt": {
                      "type": "string"
                    },
                    "firstResponseAt": {},
                    "lastDueReminderAt": {},
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "Requester": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "AssignedTo": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "Department": {},
                    "Group": {},
                    "Contact": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        },
                        "phone": {
                          "type": "string"
                        }
                      }
                    },
                    "Company": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": 5120,
                  "activityNumber": "ACT-00128-K3F9",
                  "subject": "Follow up on pricing question",
                  "description": "Quote sent by email.",
                  "status": "Resolved",
                  "priority": "Medium",
                  "type": "Task",
                  "source": "Portal",
                  "dueBy": "2026-09-18T17:00:00.000Z",
                  "organizationId": "cmexampleorg00000000000001",
                  "requesterId": "cmexampleuser0000000000001",
                  "assignedToId": "cmexampleuser0000000000002",
                  "departmentId": null,
                  "groupId": null,
                  "tags": "[\"pricing\",\"quote-sent\"]",
                  "customFields": "{}",
                  "contactId": 1042,
                  "companyId": 318,
                  "dealId": 77,
                  "engagementId": null,
                  "closedAt": null,
                  "resolvedAt": "2026-09-16T16:40:00.000Z",
                  "firstResponseAt": null,
                  "lastDueReminderAt": null,
                  "createdAt": "2026-09-15T20:11:05.000Z",
                  "updatedAt": "2026-09-16T16:40:00.000Z",
                  "Requester": {
                    "id": "cmexampleuser0000000000001",
                    "firstName": "Jane",
                    "lastName": "Doe",
                    "email": "jane.doe@example.com"
                  },
                  "AssignedTo": {
                    "id": "cmexampleuser0000000000002",
                    "firstName": "Sam",
                    "lastName": "Rivera",
                    "email": "sam.rivera@example.com"
                  },
                  "Department": null,
                  "Group": null,
                  "Contact": {
                    "id": 1042,
                    "firstName": "Alex",
                    "lastName": "Morgan",
                    "email": "alex.morgan@example.com",
                    "phone": "+15555550142"
                  },
                  "Company": {
                    "id": 318,
                    "name": "Acme Dental"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "subject": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "dueBy": {
                    "type": "string"
                  },
                  "assignedToId": {
                    "type": "string"
                  },
                  "contactId": {
                    "type": "integer"
                  },
                  "companyId": {
                    "type": "integer"
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "example": {
                "subject": "Follow up on pricing question",
                "description": "Quote sent by email.",
                "status": "Resolved",
                "priority": "Medium",
                "type": "Task",
                "source": "Portal",
                "dueBy": "2026-09-18T17:00:00.000Z",
                "assignedToId": "cmexampleuser0000000000002",
                "contactId": 1042,
                "companyId": 318,
                "tags": [
                  "pricing",
                  "quote-sent"
                ]
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Activity",
        "description": "Permanently delete a CRM activity and its tasks. With an API key the delete is allowed only when the key's user is the activity's requester or assignee; otherwise 403.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-delete",
        "operationId": "crmActivityDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "activityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5120"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/crm/activity-tasks": {
      "get": {
        "summary": "Get Activity Tasks",
        "description": "List the tasks of a CRM activity, ordered by sortOrder then creation time. activityId is required.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-tasks",
        "operationId": "crmActivityTasks",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "activityId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5120"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "activityId": {
                        "type": "integer"
                      },
                      "title": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "assignedToId": {
                        "type": "string"
                      },
                      "dueBy": {
                        "type": "string"
                      },
                      "createdById": {
                        "type": "string"
                      },
                      "completedAt": {},
                      "sortOrder": {
                        "type": "integer"
                      },
                      "lastDueReminderAt": {},
                      "createdAt": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      },
                      "AssignedTo": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          }
                        }
                      },
                      "CreatedBy": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "example": [
                  {
                    "id": 901,
                    "activityId": 5120,
                    "title": "Email the annual plan quote",
                    "description": "Use the standard pricing template.",
                    "status": "Open",
                    "assignedToId": "cmexampleuser0000000000002",
                    "dueBy": "2026-09-17T17:00:00.000Z",
                    "createdById": "cmexampleuser0000000000001",
                    "completedAt": null,
                    "sortOrder": 1,
                    "lastDueReminderAt": null,
                    "createdAt": "2026-09-15T20:15:00.000Z",
                    "updatedAt": "2026-09-15T20:15:00.000Z",
                    "AssignedTo": {
                      "id": "cmexampleuser0000000000002",
                      "firstName": "Sam",
                      "lastName": "Rivera",
                      "email": "sam.rivera@example.com"
                    },
                    "CreatedBy": {
                      "id": "cmexampleuser0000000000001",
                      "firstName": "Jane",
                      "lastName": "Doe",
                      "email": "jane.doe@example.com"
                    }
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Activity Task",
        "description": "Add a task to a CRM activity. activityId and title are required. The task is created with status Open, placed last in the activity's task order, and createdById set to the user who owns the API key. Responds 201.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-task-create",
        "operationId": "crmActivityTaskCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "activityId": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "assignedToId": {
                      "type": "string"
                    },
                    "dueBy": {
                      "type": "string"
                    },
                    "createdById": {
                      "type": "string"
                    },
                    "completedAt": {},
                    "sortOrder": {
                      "type": "integer"
                    },
                    "lastDueReminderAt": {},
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "AssignedTo": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "CreatedBy": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": 901,
                  "activityId": 5120,
                  "title": "Email the annual plan quote",
                  "description": "Use the standard pricing template.",
                  "status": "Open",
                  "assignedToId": "cmexampleuser0000000000002",
                  "dueBy": "2026-09-17T17:00:00.000Z",
                  "createdById": "cmexampleuser0000000000001",
                  "completedAt": null,
                  "sortOrder": 1,
                  "lastDueReminderAt": null,
                  "createdAt": "2026-09-15T20:15:00.000Z",
                  "updatedAt": "2026-09-15T20:15:00.000Z",
                  "AssignedTo": {
                    "id": "cmexampleuser0000000000002",
                    "firstName": "Sam",
                    "lastName": "Rivera",
                    "email": "sam.rivera@example.com"
                  },
                  "CreatedBy": {
                    "id": "cmexampleuser0000000000001",
                    "firstName": "Jane",
                    "lastName": "Doe",
                    "email": "jane.doe@example.com"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "activityId": {
                    "type": "integer"
                  },
                  "title": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "assignedToId": {
                    "type": "string"
                  },
                  "dueBy": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "activityId": 5120,
                "title": "Email the annual plan quote",
                "description": "Use the standard pricing template.",
                "assignedToId": "cmexampleuser0000000000002",
                "dueBy": "2026-09-17T17:00:00.000Z"
              }
            }
          }
        }
      }
    },
    "/api/crm/activity-tasks/{taskId}": {
      "get": {
        "summary": "Get Activity Task by ID",
        "description": "Fetch a single activity task by its numeric ID, including the parent activity's number and subject. Returns 404 if not found and 403 if the task belongs to another organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-task-id",
        "operationId": "crmActivityTaskId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "901"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "activityId": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "assignedToId": {
                      "type": "string"
                    },
                    "dueBy": {
                      "type": "string"
                    },
                    "createdById": {
                      "type": "string"
                    },
                    "completedAt": {},
                    "sortOrder": {
                      "type": "integer"
                    },
                    "lastDueReminderAt": {},
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "AssignedTo": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "CreatedBy": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "Activity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "activityNumber": {
                          "type": "string"
                        },
                        "subject": {
                          "type": "string"
                        },
                        "organizationId": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": 901,
                  "activityId": 5120,
                  "title": "Email the annual plan quote",
                  "description": "Use the standard pricing template.",
                  "status": "Open",
                  "assignedToId": "cmexampleuser0000000000002",
                  "dueBy": "2026-09-17T17:00:00.000Z",
                  "createdById": "cmexampleuser0000000000001",
                  "completedAt": null,
                  "sortOrder": 1,
                  "lastDueReminderAt": null,
                  "createdAt": "2026-09-15T20:15:00.000Z",
                  "updatedAt": "2026-09-15T20:15:00.000Z",
                  "AssignedTo": {
                    "id": "cmexampleuser0000000000002",
                    "firstName": "Sam",
                    "lastName": "Rivera",
                    "email": "sam.rivera@example.com"
                  },
                  "CreatedBy": {
                    "id": "cmexampleuser0000000000001",
                    "firstName": "Jane",
                    "lastName": "Doe",
                    "email": "jane.doe@example.com"
                  },
                  "Activity": {
                    "id": 5120,
                    "activityNumber": "ACT-00128-K3F9",
                    "subject": "Follow up on pricing question",
                    "organizationId": "cmexampleorg00000000000001"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Activity Task",
        "description": "Partially update an activity task (PATCH is also accepted). Only fields present in the body are changed. Setting status to Completed records completedAt; any other status clears it. Returns 403 if the task belongs to another organization.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-task-update",
        "operationId": "crmActivityTaskUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "901"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "activityId": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "assignedToId": {
                      "type": "string"
                    },
                    "dueBy": {
                      "type": "string"
                    },
                    "createdById": {
                      "type": "string"
                    },
                    "completedAt": {
                      "type": "string"
                    },
                    "sortOrder": {
                      "type": "integer"
                    },
                    "lastDueReminderAt": {},
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "AssignedTo": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    },
                    "CreatedBy": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "firstName": {
                          "type": "string"
                        },
                        "lastName": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "id": 901,
                  "activityId": 5120,
                  "title": "Email the annual plan quote",
                  "description": "Sent with the standard pricing template.",
                  "status": "Completed",
                  "assignedToId": "cmexampleuser0000000000002",
                  "dueBy": "2026-09-17T17:00:00.000Z",
                  "createdById": "cmexampleuser0000000000001",
                  "completedAt": "2026-09-16T16:40:00.000Z",
                  "sortOrder": 1,
                  "lastDueReminderAt": null,
                  "createdAt": "2026-09-15T20:15:00.000Z",
                  "updatedAt": "2026-09-16T16:40:00.000Z",
                  "AssignedTo": {
                    "id": "cmexampleuser0000000000002",
                    "firstName": "Sam",
                    "lastName": "Rivera",
                    "email": "sam.rivera@example.com"
                  },
                  "CreatedBy": {
                    "id": "cmexampleuser0000000000001",
                    "firstName": "Jane",
                    "lastName": "Doe",
                    "email": "jane.doe@example.com"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "assignedToId": {
                    "type": "string"
                  },
                  "dueBy": {
                    "type": "string"
                  },
                  "sortOrder": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "title": "Email the annual plan quote",
                "description": "Sent with the standard pricing template.",
                "status": "Completed",
                "assignedToId": "cmexampleuser0000000000002",
                "dueBy": "2026-09-17T17:00:00.000Z",
                "sortOrder": 1
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Activity Task",
        "description": "Permanently delete an activity task. With an API key the delete is allowed only when the key's user created the task or is assigned to it; otherwise 403.\n\nDocs: https://docs.vinsi.ai/api-docs/crm-activity-task-delete",
        "operationId": "crmActivityTaskDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "901"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    },
    "/api/tools": {
      "get": {
        "summary": "Get Tools",
        "description": "Fetch every tool in your organization, newest first. configuration is a JSON string. mine is true when the tool was created by the user who owns the API key.\n\nDocs: https://docs.vinsi.ai/api-docs/tools",
        "operationId": "tools",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "configuration": {
                        "type": "string"
                      },
                      "createdAt": {
                        "type": "string"
                      },
                      "updatedAt": {
                        "type": "string"
                      },
                      "userId": {
                        "type": "string"
                      },
                      "organizationId": {
                        "type": "string"
                      },
                      "dtmfOnly": {},
                      "mine": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "example": [
                  {
                    "id": "cmexampletool000000000001",
                    "name": "example-tool",
                    "description": "example tool description",
                    "type": "TransferCall",
                    "configuration": "{\"phoneNumber\":\"+18001234567\",\"transferMessage\":\"transfer message\"}",
                    "createdAt": "2026-01-27T16:15:42.751Z",
                    "updatedAt": "2026-01-27T16:15:42.751Z",
                    "userId": "cmexampleuser0000000000001",
                    "organizationId": "cmexampleorg00000000000001",
                    "dtmfOnly": null,
                    "mine": true
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "post": {
        "summary": "Create Tool",
        "description": "Create a tool in your organization. name and type are required. type must be one of Function, DTMF, Documents, TransferCall, EndCall, GoHighLevelAPI, HubSpotAPI, SalesforceAPI, VinsiSaasCrmAPI, AfterCallAction, EpicFhirAPI. configuration can be an object or a JSON string and is stored as a JSON string. Responds 201.\n\nDocs: https://docs.vinsi.ai/api-docs/tool-create",
        "operationId": "toolCreate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "configuration": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dtmfOnly": {}
                  }
                },
                "example": {
                  "id": "cmexampletool000000000001",
                  "name": "example-tool",
                  "description": "example tool description",
                  "type": "TransferCall",
                  "configuration": "{\"phoneNumber\":\"+18001234567\",\"transferMessage\":\"transfer message\"}",
                  "createdAt": "2026-01-27T16:15:42.751Z",
                  "updatedAt": "2026-01-27T16:15:42.751Z",
                  "userId": "cmexampleuser0000000000001",
                  "organizationId": "cmexampleorg00000000000001",
                  "dtmfOnly": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "configuration": {
                    "type": "object",
                    "properties": {
                      "phoneNumber": {
                        "type": "string"
                      },
                      "transferMessage": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "example": {
                "name": "example-tool",
                "type": "TransferCall",
                "description": "example tool description",
                "configuration": {
                  "phoneNumber": "+18001234567",
                  "transferMessage": "transfer message"
                }
              }
            }
          }
        }
      }
    },
    "/api/tools/{toolId}": {
      "get": {
        "summary": "Get Tool by ID",
        "description": "Fetch a tool by ID. configuration is returned as a parsed object. Returns 404 if the tool does not exist and 403 if it belongs to another organization.\n\nDocs: https://docs.vinsi.ai/api-docs/tool-id",
        "operationId": "toolId",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "toolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "cmexampletool000000000001"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "configuration": {
                      "type": "object",
                      "properties": {
                        "phoneNumber": {
                          "type": "string"
                        },
                        "transferMessage": {
                          "type": "string"
                        }
                      }
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "organizationId": {
                      "type": "string"
                    },
                    "dtmfOnly": {}
                  }
                },
                "example": {
                  "id": "cmexampletool000000000001",
                  "name": "example-tool",
                  "description": "example tool description",
                  "type": "TransferCall",
                  "configuration": {
                    "phoneNumber": "+18001234567",
                    "transferMessage": "transfer message"
                  },
                  "createdAt": "2026-01-27T16:15:42.751Z",
                  "updatedAt": "2026-01-27T16:15:42.751Z",
                  "userId": "cmexampleuser0000000000001",
                  "organizationId": "cmexampleorg00000000000001",
                  "dtmfOnly": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      },
      "put": {
        "summary": "Update Tool",
        "description": "Update a tool. name and type are required. type must be one of Function, DTMF, Documents, TransferCall, EndCall, GoHighLevelAPI, VinsiSaasCrmAPI, AfterCallAction, EpicFhirAPI. If configuration is omitted the existing configuration is kept. configuration is returned as a parsed object.\n\nDocs: https://docs.vinsi.ai/api-docs/tool-update",
        "operationId": "toolUpdate",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "toolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "cmexampletool000000000001"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "configuration": {
                      "type": "object",
                      "properties": {
                        "phoneNumber": {
                          "type": "string"
                        },
                        "transferMessage": {
                          "type": "string"
                        }
                      }
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "string"
                    },
                    "dtmfOnly": {}
                  }
                },
                "example": {
                  "id": "cmexampletool000000000001",
                  "name": "example-tool",
                  "description": "example tool description",
                  "type": "TransferCall",
                  "configuration": {
                    "phoneNumber": "+18001234567",
                    "transferMessage": "transfer message"
                  },
                  "createdAt": "2026-01-27T16:15:42.751Z",
                  "updatedAt": "2026-01-27T16:15:42.751Z",
                  "userId": "cmexampleuser0000000000001",
                  "dtmfOnly": null
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "dtmfOnly": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "string"
                  },
                  "configuration": {
                    "type": "object",
                    "properties": {
                      "phoneNumber": {
                        "type": "string"
                      },
                      "transferMessage": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "example": {
                "name": "example-tool",
                "type": "TransferCall",
                "dtmfOnly": false,
                "description": "example tool description",
                "configuration": {
                  "phoneNumber": "+18001234567",
                  "transferMessage": "transfer message"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Tool",
        "description": "Delete a tool and remove it from every agent that uses it. Responds 204 No Content with an empty body.\n\nDocs: https://docs.vinsi.ai/api-docs/tool-delete",
        "operationId": "toolDelete",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "toolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "cmexampletool000000000001"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {}
                },
                "example": {}
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or revoked API key"
          },
          "402": {
            "description": "Organization subscription inactive"
          }
        }
      }
    }
  }
}