{"openapi": "3.1.0", "info": {"title": "Eve Public API", "version": "0.1.0"}, "paths": {"/v1/matters/{external_matter_id}": {"get": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Get Matter", "operationId": "get_matter", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MatterResponse"}}}}, "401": {"description": "Unauthorized"}, "404": {"description": "Not Found"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Sync Matter", "operationId": "sync_matter", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SyncMatterRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MatterResponse"}}}}, "401": {"description": "Unauthorized"}, "400": {"description": "Bad Request"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Delete Matter", "operationId": "delete_matter", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Unauthorized"}, "404": {"description": "Not Found"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/matters": {"get": {"tags": ["v1"], "summary": "Publicv1Matterrouter.List Matters", "operationId": "list_matters", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "After id for paginated query", "title": "Afterid"}, "description": "After id for paginated query"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "Before id for paginated query", "title": "Beforeid"}, "description": "Before id for paginated query"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "description": "Number of items to return", "default": 25, "title": "Limit"}, "description": "Number of items to return"}, {"name": "sortOrder", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/SortOrder"}, {"type": "null"}], "description": "Sort order, ASC or DESC", "default": "Desc", "title": "Sortorder"}, "description": "Sort order, ASC or DESC"}, {"name": "sortBy", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/MattersSortBy"}, {"type": "null"}], "description": "Sort by field", "default": "CREATED_AT", "title": "Sortby"}, "description": "Sort by field"}, {"name": "state", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/MatterStateFilter"}, {"type": "null"}], "description": "Tab is in state", "default": "ALL", "title": "State"}, "description": "Tab is in state"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListMattersResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/matters/{external_matter_id}/custom-data": {"put": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Put Custom Data", "description": "Store the custom data of an API-managed matter: one JSON object, up to 25 MB after decompression.\nThe body can be gzip-compressed with Content-Encoding: gzip.\nEach upload replaces the earlier custom data. Use begin-upload and confirm-upload for larger files.\nCustom data does not fill the custom fields that a firm configures in Eve.", "operationId": "put_custom_data", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomDataResponse"}}}}, "401": {"description": "Unauthorized"}, "400": {"description": "Bad Request"}, "404": {"description": "Not Found"}, "413": {"description": "Request Entity Too Large"}, "415": {"description": "Unsupported Media Type"}, "422": {"description": "Unprocessable Entity"}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true}}}}}, "get": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Get Custom Data", "description": "Get the metadata of the custom data of an API-managed matter.", "operationId": "get_custom_data", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomDataResponse"}}}}, "401": {"description": "Unauthorized"}, "404": {"description": "Not Found"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/matters/{external_matter_id}/custom-data/begin-upload": {"put": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Begin Custom Data Upload", "description": "Get a presigned URL to upload custom data of up to 250 MB. Upload the JSON file to the URL,\nthen call confirm-upload.", "operationId": "begin_custom_data_upload", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BeginCustomDataUploadResponse"}}}}, "401": {"description": "Unauthorized"}, "404": {"description": "Not Found"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/matters/{external_matter_id}/custom-data/confirm-upload": {"post": {"tags": ["v1"], "summary": "Publicv1Matterrouter.Confirm Custom Data Upload", "description": "Validate the file uploaded to the begin-upload URL and store it as the custom data of the matter.\nEach upload replaces the earlier custom data. A 429 means that Eve is validating other large\nfiles. Retry after the Retry-After seconds.", "operationId": "confirm_custom_data_upload", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_matter_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Matter Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomDataResponse"}}}}, "401": {"description": "Unauthorized"}, "400": {"description": "Bad Request"}, "404": {"description": "Not Found"}, "413": {"description": "Request Entity Too Large"}, "422": {"description": "Unprocessable Entity"}, "429": {"description": "Too Many Requests"}}}}, "/v1/documents": {"get": {"tags": ["v1"], "summary": "Publicv1Documentsrouter.Search Documents", "description": "Get documents by matter or external IDs.", "operationId": "search_documents", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "After id for paginated query", "title": "Afterid"}, "description": "After id for paginated query"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "Before id for paginated query", "title": "Beforeid"}, "description": "Before id for paginated query"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "description": "Number of items to return", "default": 25, "title": "Limit"}, "description": "Number of items to return"}, {"name": "sortOrder", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/SortOrder"}, {"type": "null"}], "description": "Sort order, ASC or DESC", "default": "Asc", "title": "Sortorder"}, "description": "Sort order, ASC or DESC"}, {"name": "sortBy", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/DocumentSortBy"}, {"type": "null"}], "description": "Sort by field", "title": "Sortby"}, "description": "Sort by field"}, {"name": "externalMatterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "External ID of the matter. Either external_matter_id or external_lead_id can be provided for filtering (mutually exclusive, both optional)", "title": "Externalmatterid"}, "description": "External ID of the matter. Either external_matter_id or external_lead_id can be provided for filtering (mutually exclusive, both optional)"}, {"name": "externalLeadId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "External ID of the lead. Either external_matter_id or external_lead_id can be provided for filtering (mutually exclusive, both optional)", "title": "Externalleadid"}, "description": "External ID of the lead. Either external_matter_id or external_lead_id can be provided for filtering (mutually exclusive, both optional)"}, {"name": "externalDocumentIds", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "description": "List of external document IDs", "title": "Externaldocumentids"}, "description": "List of external document IDs"}, {"name": "statuses", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/DocumentStatus"}}, {"type": "null"}], "description": "Status of the documents", "title": "Statuses"}, "description": "Status of the documents"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchDocumentsResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/documents/batch-sync": {"post": {"tags": ["v1"], "summary": "Publicv1Documentsrouter.Batch Sync Documents", "description": "Batch sync multiple documents with the system for a matter. If the documents don't exist, they will be created.\nIf they exist, they will be updated.\nDoes not delete documents, use the batch delete endpoint for that operation.\nMaximum of 100 documents per request.", "operationId": "batch_sync_documents", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchSyncDocumentRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchSyncDocumentResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/documents/batch-delete": {"post": {"tags": ["v1"], "summary": "Publicv1Documentsrouter.Batch Delete Documents", "description": "Batch delete documents in a matter by external IDs.\nMaximum of 100 documents per request.", "operationId": "batch_delete_documents", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteDocumentsRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteDocumentsResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/documents/confirm-upload": {"post": {"tags": ["v1"], "summary": "Publicv1Documentsrouter.Confirm Document Uploads", "description": "Confirm that documents in a matter have been uploaded to the signed URLs.\nMaximum of 100 documents per request.", "operationId": "confirm_document_uploads", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfirmDocumentsUploadRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfirmDocumentsUploadResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/documents/delete-all-by-external-id": {"post": {"tags": ["v1"], "summary": "Publicv1Documentsrouter.Delete All By External Id", "description": "Delete all documents with this external ID.", "operationId": "delete_all_by_external_id", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteAllByExternalIdRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteDocumentsResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/leads": {"get": {"tags": ["v1"], "summary": "Publicv1Leadrouter.List Leads", "operationId": "list_leads", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "After id for paginated query", "title": "Afterid"}, "description": "After id for paginated query"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "Before id for paginated query", "title": "Beforeid"}, "description": "Before id for paginated query"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "description": "Number of items to return", "default": 25, "title": "Limit"}, "description": "Number of items to return"}, {"name": "sortOrder", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/SortOrder"}, {"type": "null"}], "description": "Sort order, ASC or DESC", "default": "Asc", "title": "Sortorder"}, "description": "Sort order, ASC or DESC"}, {"name": "sortBy", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/LeadSortBy"}, {"type": "null"}], "description": "Sort by field", "default": "CREATED_AT", "title": "Sortby"}, "description": "Sort by field"}, {"name": "status", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/LeadStatusFilter"}, {"type": "null"}], "description": "Lead status", "title": "Status"}, "description": "Lead status"}, {"name": "source", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/LeadSourceFilter"}, {"type": "null"}], "description": "Lead source type", "title": "Source"}, "description": "Lead source type"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListLeadsResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/leads/voice_agents": {"get": {"tags": ["v1"], "summary": "Publicv1Leadrouter.List Lead Voice Agents", "description": "List the firm's intake voice agents that have a phone number to call from.\n\nPass the returned voiceAgentId to chase-start to select the agent per call.", "operationId": "list_lead_voice_agents", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceAgentsResponse"}}}}, "401": {"description": "Unauthorized"}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/leads/{external_or_eve_lead_id}": {"get": {"tags": ["v1"], "summary": "Publicv1Leadrouter.Get Lead Details", "operationId": "get_lead_details", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_or_eve_lead_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Or Eve Lead Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LeadDetails"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["v1"], "summary": "Publicv1Leadrouter.Delete Lead", "operationId": "delete_lead", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_or_eve_lead_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Or Eve Lead Id"}}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/leads/{external_lead_id}": {"put": {"tags": ["v1"], "summary": "Publicv1Leadrouter.Sync Lead", "operationId": "sync_lead", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_lead_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Lead Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SyncLeadRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SyncLeadResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/leads/{eve_lead_or_submission_id}/chase": {"post": {"tags": ["v1"], "summary": "Publicv1Leadrouter.Start Chase", "description": "Start an autonomous outbound chase of a lead.\n\nAccepts an Eve lead id, the tab id shown in the Eve lead-page URL, an\nexternal lead id, or a lead-submission id whose\nlead hasn't been created yet (the chase starts the moment it is). By\ncalling this endpoint the firm attests it holds prior express consent to\ncall this lead; the attestation is stored as the audit record.", "operationId": "start_chase", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "eve_lead_or_submission_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Eve Lead Or Submission Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StartChaseRequest"}}}}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StartChaseResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/leads/{external_or_eve_lead_id}/chase/stop": {"post": {"tags": ["v1"], "summary": "Publicv1Leadrouter.Stop Chase", "description": "Stop a lead's chase. Idempotent: stopping an ended chase returns its final state.", "operationId": "stop_chase", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_or_eve_lead_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Or Eve Lead Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StopChaseResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/notes": {"get": {"tags": ["v1"], "summary": "Publicv1Notesrouter.Search Notes", "description": "Get notes by matter or external IDs.", "operationId": "search_notes", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "After id for paginated query", "title": "Afterid"}, "description": "After id for paginated query"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "Before id for paginated query", "title": "Beforeid"}, "description": "Before id for paginated query"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "description": "Number of items to return", "default": 25, "title": "Limit"}, "description": "Number of items to return"}, {"name": "sortOrder", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/SortOrder"}, {"type": "null"}], "description": "Sort order, ASC or DESC", "default": "Asc", "title": "Sortorder"}, "description": "Sort order, ASC or DESC"}, {"name": "sortBy", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/NoteSortBy"}, {"type": "null"}], "description": "Sort by field", "title": "Sortby"}, "description": "Sort by field"}, {"name": "externalMatterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "External ID of the matter", "title": "Externalmatterid"}, "description": "External ID of the matter"}, {"name": "externalLeadId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "External ID of the lead", "title": "Externalleadid"}, "description": "External ID of the lead"}, {"name": "externalNoteIds", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "description": "List of external note IDs", "title": "Externalnoteids"}, "description": "List of external note IDs"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchNotesResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/notes/batch-sync": {"post": {"tags": ["v1"], "summary": "Publicv1Notesrouter.Batch Sync Notes", "description": "Batch sync multiple notes with the system for a matter. If the notes don't exist, they will be created.\nIf they exist, they will be updated.\nDoes not delete notes, use the batch delete endpoint for that operation.\nMaximum of 100 notes per request.", "operationId": "batch_sync_notes", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchSyncNoteRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchSyncNoteResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/notes/batch-delete": {"post": {"tags": ["v1"], "summary": "Publicv1Notesrouter.Batch Delete Notes", "description": "Batch delete notes in a matter by external IDs.\nMaximum of 100 notes per request.", "operationId": "batch_delete_notes", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteNoteRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteNoteResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/emails": {"get": {"tags": ["v1"], "summary": "Publicv1Emailsrouter.Search Emails", "description": "Get the emails of a matter, optionally filtered by externalMessageIds or threadId.", "operationId": "search_emails", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "After id for paginated query", "title": "Afterid"}, "description": "After id for paginated query"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "Before id for paginated query", "title": "Beforeid"}, "description": "Before id for paginated query"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "description": "Number of items to return", "default": 25, "title": "Limit"}, "description": "Number of items to return"}, {"name": "sortOrder", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/SortOrder"}, {"type": "null"}], "description": "Sort order, ASC or DESC", "default": "Asc", "title": "Sortorder"}, "description": "Sort order, ASC or DESC"}, {"name": "sortBy", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/EmailSortBy"}, {"type": "null"}], "description": "Sort by field. Defaults to SENT_AT.", "title": "Sortby"}, "description": "Sort by field. Defaults to SENT_AT."}, {"name": "externalMatterId", "in": "query", "required": true, "schema": {"type": "string", "description": "External ID of the matter", "title": "Externalmatterid"}, "description": "External ID of the matter"}, {"name": "externalMessageIds", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "description": "List of externalMessageId values", "title": "Externalmessageids"}, "description": "List of externalMessageId values"}, {"name": "threadId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Your ID of the thread", "title": "Threadid"}, "description": "Your ID of the thread"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchEmailsResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/emails/batch-sync": {"post": {"tags": ["v1"], "summary": "Publicv1Emailsrouter.Batch Sync Emails", "description": "Batch sync multiple emails with the system for a matter. If the emails do not exist, they will be created.\nIf they exist, they will be updated, and a deleted email is restored.\nSync each attachment through the documents API first, then list it in externalDocumentIds.\nA document links to one email: when two emails list the same document, the first email keeps it.\nMaximum of 100 emails per request.", "operationId": "batch_sync_emails", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchSyncEmailRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchSyncEmailResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/emails/batch-delete": {"post": {"tags": ["v1"], "summary": "Publicv1Emailsrouter.Batch Delete Emails", "description": "Batch delete emails in a matter by externalMessageId.\nThe linked documents stay on the matter.\nMaximum of 100 emails per request.", "operationId": "batch_delete_emails", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteEmailRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BatchDeleteEmailResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/calls": {"get": {"tags": ["v1"], "summary": "Publicv1Callsrouter.List Calls", "operationId": "list_calls", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "After id for paginated query", "title": "Afterid"}, "description": "After id for paginated query"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "description": "Before id for paginated query", "title": "Beforeid"}, "description": "Before id for paginated query"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "description": "Number of items to return", "default": 25, "title": "Limit"}, "description": "Number of items to return"}, {"name": "sortOrder", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/SortOrder"}, {"type": "null"}], "description": "Sort order, ASC or DESC", "default": "Asc", "title": "Sortorder"}, "description": "Sort order, ASC or DESC"}, {"name": "startTime", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "description": "Only include calls that started on or after this time (ISO timestamp).", "title": "Starttime"}, "description": "Only include calls that started on or after this time (ISO timestamp)."}, {"name": "endTime", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "description": "Only include calls that started before this time (ISO timestamp).", "title": "Endtime"}, "description": "Only include calls that started before this time (ISO timestamp)."}, {"name": "direction", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/CallDirectionFilter"}, {"type": "null"}], "description": "Filter by call direction: INBOUND or OUTBOUND. Omit for all.", "title": "Direction"}, "description": "Filter by call direction: INBOUND or OUTBOUND. Omit for all."}, {"name": "callSource", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/CallSourceFilter"}, {"type": "null"}], "description": "Filter by call source (e.g. EVE_VOICE_AI). Omit for all.", "title": "Callsource"}, "description": "Filter by call source (e.g. EVE_VOICE_AI). Omit for all."}, {"name": "externalMatterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Only include calls assigned to this matter. Mutually exclusive with external_lead_id.", "title": "Externalmatterid"}, "description": "Only include calls assigned to this matter. Mutually exclusive with external_lead_id."}, {"name": "externalLeadId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Only include calls assigned to this lead. Mutually exclusive with external_matter_id.", "title": "Externalleadid"}, "description": "Only include calls assigned to this lead. Mutually exclusive with external_matter_id."}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListCallsResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/calls/{external_call_id}/begin-upload": {"put": {"tags": ["v1"], "summary": "Publicv1Callsrouter.Begin Upload", "operationId": "begin_upload", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_call_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Call Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BeginUploadRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BeginUploadResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/calls/{external_call_id}/confirm-upload": {"post": {"tags": ["v1"], "summary": "Publicv1Callsrouter.Confirm Upload", "operationId": "confirm_upload", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_call_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Call Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfirmUploadResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v1/lead-submissions": {"post": {"tags": ["v1"], "summary": "Submit a lead", "description": "Submit a lead in any shape. Recommended fast-path keys: name (or first_name + last_name), phone, email. All other keys are preserved on the lead and feed overview generation. Bodies must be UTF-8 encoded. Payloads with no data at all (empty body, empty object, or a form whose fields are all blank) are rejected with 400 empty_payload; anything else is accepted, with warnings flagging missing standard fields. Requires a per-integration API key in X-API-Key. Bodies are capped at 1 MB and requests are rate-limited per integration. A 202 means the lead was durably stored; senders should retry on 5xx responses and on timeouts or connection failures where no response was received.", "operationId": "submit_lead", "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LeadSubmissionResponseDto"}}}}, "401": {"description": "Missing, invalid, or revoked API key"}, "400": {"description": "Empty payload \u2014 the body contains no non-empty fields to build a lead from"}, "413": {"description": "Body exceeds the 1 MB cap"}, "429": {"description": "Rate limit exceeded; Retry-After indicates when to resume"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "parameters": [{"name": "X-API-Key", "in": "header", "required": true, "schema": {"type": "string"}, "description": "Per-integration API key"}], "requestBody": {"content": {"application/json": {"example": {"first_name": "Jane", "last_name": "Doe", "phone": "+15551234567", "email": "jane.doe@example.com", "case_type": "Motor vehicle accident", "description": "Rear-ended at a stoplight on 6/28, neck pain, other driver cited."}}, "application/x-www-form-urlencoded": {"example": "first_name=Jane&last_name=Doe&phone=%2B15551234567&email=jane.doe%40example.com"}}}}}, "/v1/team-roles": {"get": {"tags": ["v1"], "summary": "Publicv1Teamrolesrouter.List Team Roles", "description": "List the team roles that the API created. Built-in Eve roles and roles from a CMS integration\nare not listed.", "operationId": "list_team_roles", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublicTeamRoleListResponse"}}}}, "401": {"description": "Unauthorized"}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v1/team-roles/{external_role_id}": {"get": {"tags": ["v1"], "summary": "Publicv1Teamrolesrouter.Get Team Role", "description": "Get one team role by your ID.", "operationId": "get_team_role", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_role_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Role Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublicTeamRoleResponse"}}}}, "401": {"description": "Unauthorized"}, "404": {"description": "Not Found"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["v1"], "summary": "Publicv1Teamrolesrouter.Upsert Team Role", "description": "Create a team role with your ID, or update its name and description if it exists.\nTeam roles are read-only in the Eve app. Assign them with teamRoles in PUT /matters/{external_matter_id}.", "operationId": "upsert_team_role", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "external_role_id", "in": "path", "required": true, "schema": {"type": "string", "title": "External Role Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpsertPublicTeamRoleRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublicTeamRoleResponse"}}}}, "401": {"description": "Unauthorized"}, "422": {"description": "Unprocessable Entity"}}}}, "/v1/users": {"get": {"tags": ["v1"], "summary": "Publicv1Usersrouter.List Users", "description": "List the active Eve users of the organization, sorted by email. Use it to see which of your\nusers have an Eve account. The API does not create users.", "operationId": "list_users", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "emails", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Comma-separated list of emails. Only users with these emails are returned.", "title": "Emails"}, "description": "Comma-separated list of emails. Only users with these emails are returned."}, {"name": "afterId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Return the users after the user with this ID", "title": "Afterid"}, "description": "Return the users after the user with this ID"}, {"name": "beforeId", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Return the users before the user with this ID", "title": "Beforeid"}, "description": "Return the users before the user with this ID"}, {"name": "limit", "in": "query", "required": false, "schema": {"type": "integer", "minimum": 1, "description": "Maximum number of users to return", "default": 25, "title": "Limit"}, "description": "Maximum number of users to return"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserListResponse"}}}}, "401": {"description": "Unauthorized"}, "400": {"description": "Bad Request"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"AssignedTeamRole": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Eve ID of the team role"}, "externalId": {"type": "string", "title": "Externalid", "description": "Your ID of the team role"}, "name": {"type": "string", "title": "Name", "description": "Name of the team role in Eve"}}, "type": "object", "required": ["id", "externalId", "name"], "title": "AssignedTeamRole"}, "AssociatedUserWarning": {"properties": {"email": {"type": "string", "title": "Email", "description": "Email of the user, as sent in the request"}, "externalRoleId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalroleid", "description": "Your ID of the team role that Eve did not apply, or null when Eve did not apply the whole user"}, "reason": {"$ref": "#/components/schemas/AssociatedUserWarningReason", "description": "USER_NOT_FOUND: the email does not belong to an Eve user of the organization. USER_BLOCKED: an Eve admin blocked the user's access to the matter. ROLE_ALREADY_ASSIGNED_IN_REQUEST: an earlier user in the request has the role. A role has one person per matter."}}, "type": "object", "required": ["email", "externalRoleId", "reason"], "title": "AssociatedUserWarning"}, "AssociatedUserWarningReason": {"type": "string", "enum": ["USER_NOT_FOUND", "USER_BLOCKED", "ROLE_ALREADY_ASSIGNED_IN_REQUEST"], "title": "AssociatedUserWarningReason"}, "BatchDeleteDocumentsRequest": {"properties": {"externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter. Exactly one of external_matter_id or external_lead_id must be provided (mutually exclusive)"}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead. Exactly one of external_matter_id or external_lead_id must be provided (mutually exclusive)"}, "externalDocumentIds": {"items": {"type": "string"}, "type": "array", "title": "Externaldocumentids", "description": "List of external document IDs"}}, "type": "object", "required": ["externalDocumentIds"], "title": "BatchDeleteDocumentsRequest"}, "BatchDeleteDocumentsResponse": {"properties": {"deletedDocuments": {"items": {"$ref": "#/components/schemas/DeletedDocument"}, "type": "array", "title": "Deleteddocuments", "description": "List of documents that were deleted"}}, "type": "object", "required": ["deletedDocuments"], "title": "BatchDeleteDocumentsResponse"}, "BatchDeleteEmailRequest": {"properties": {"externalMatterId": {"type": "string", "title": "Externalmatterid", "description": "External ID of the matter"}, "externalMessageIds": {"items": {"type": "string"}, "type": "array", "title": "Externalmessageids", "description": "List of externalMessageId values to delete"}}, "type": "object", "required": ["externalMatterId", "externalMessageIds"], "title": "BatchDeleteEmailRequest"}, "BatchDeleteEmailResponse": {"properties": {"deletedEmails": {"items": {"$ref": "#/components/schemas/DeletedEmail"}, "type": "array", "title": "Deletedemails", "description": "List of deleted emails"}}, "type": "object", "required": ["deletedEmails"], "title": "BatchDeleteEmailResponse"}, "BatchDeleteNoteRequest": {"properties": {"externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter"}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead"}, "externalNoteIds": {"items": {"type": "string"}, "type": "array", "title": "Externalnoteids", "description": "List of external note IDs"}}, "type": "object", "required": ["externalNoteIds"], "title": "BatchDeleteNoteRequest"}, "BatchDeleteNoteResponse": {"properties": {"deletedNotes": {"items": {"$ref": "#/components/schemas/DeletedNote"}, "type": "array", "title": "Deletednotes", "description": "List of deleted notes"}}, "type": "object", "required": ["deletedNotes"], "title": "BatchDeleteNoteResponse"}, "BatchSyncDocumentRequest": {"properties": {"externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter. Exactly one of external_matter_id or external_lead_id must be provided (mutually exclusive)"}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead. Exactly one of external_matter_id or external_lead_id must be provided (mutually exclusive)"}, "syncDocuments": {"items": {"$ref": "#/components/schemas/SyncDocumentRequest"}, "type": "array", "title": "Syncdocuments", "description": "List of sync document requests"}}, "type": "object", "required": ["syncDocuments"], "title": "BatchSyncDocumentRequest"}, "BatchSyncDocumentResponse": {"properties": {"syncDocuments": {"items": {"$ref": "#/components/schemas/SyncDocumentResponse"}, "type": "array", "title": "Syncdocuments", "description": "List of sync document responses"}}, "type": "object", "required": ["syncDocuments"], "title": "BatchSyncDocumentResponse"}, "BatchSyncEmailRequest": {"properties": {"externalMatterId": {"type": "string", "title": "Externalmatterid", "description": "External ID of the matter"}, "syncEmails": {"items": {"$ref": "#/components/schemas/SyncEmailRequest"}, "type": "array", "title": "Syncemails", "description": "List of sync email requests"}}, "type": "object", "required": ["externalMatterId", "syncEmails"], "title": "BatchSyncEmailRequest"}, "BatchSyncEmailResponse": {"properties": {"emails": {"items": {"$ref": "#/components/schemas/Email"}, "type": "array", "title": "Emails", "description": "List of emails, in request order"}}, "type": "object", "required": ["emails"], "title": "BatchSyncEmailResponse"}, "BatchSyncNoteRequest": {"properties": {"externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter"}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead"}, "syncNotes": {"items": {"$ref": "#/components/schemas/SyncNoteRequest"}, "type": "array", "title": "Syncnotes", "description": "List of sync note requests"}}, "type": "object", "required": ["syncNotes"], "title": "BatchSyncNoteRequest"}, "BatchSyncNoteResponse": {"properties": {"notes": {"items": {"$ref": "#/components/schemas/Note"}, "type": "array", "title": "Notes", "description": "List of notes"}}, "type": "object", "required": ["notes"], "title": "BatchSyncNoteResponse"}, "BeginCustomDataUploadResponse": {"properties": {"signedUploadUrl": {"type": "string", "title": "Signeduploadurl", "description": "Presigned S3 URL for the JSON file. Send a PUT with Content-Type application/json. Valid for 1 hour."}, "customData": {"anyOf": [{"$ref": "#/components/schemas/CustomData"}, {"type": "null"}], "description": "The current custom data, or null if the matter has none"}}, "type": "object", "required": ["signedUploadUrl", "customData"], "title": "BeginCustomDataUploadResponse"}, "BeginUploadRequest": {"properties": {"fileName": {"type": "string", "title": "Filename", "description": "Audio file name (.mp3, .wav, .ogg)"}, "startedAt": {"type": "string", "format": "date-time", "title": "Startedat", "description": "ISO 8601 timestamp for when the call started"}, "endedAt": {"type": "string", "format": "date-time", "title": "Endedat", "description": "ISO 8601 timestamp for when the call ended"}, "direction": {"$ref": "#/components/schemas/CPCallDirection", "description": "INBOUND or OUTBOUND."}, "fromNumber": {"type": "string", "title": "Fromnumber", "description": "Caller phone number (E.164)"}, "toNumber": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Tonumber", "description": "Callee phone number (E.164)"}, "operatorName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Operatorname", "description": "Name of the operator on the call"}, "operatorEmail": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Operatoremail", "description": "Email of the operator on the call"}, "operatorId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Operatorid", "description": "Provider's internal identifier for the operator"}, "externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter to assign the call to. Mutually exclusive with external_lead_id. If you omit both IDs, Eve matches the call to a recent matter or lead by phone number. A retry with a different ID moves the call, also after confirm-upload. A retry without an ID keeps the current assignment."}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead to assign the call to. Mutually exclusive with external_matter_id."}}, "type": "object", "required": ["fileName", "startedAt", "endedAt", "direction", "fromNumber"], "title": "BeginUploadRequest"}, "BeginUploadResponse": {"properties": {"signedUploadUrl": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Signeduploadurl", "description": "Presigned S3 URL for uploading the audio file via HTTP PUT. The URL expires after a short period; call this endpoint again to get a fresh URL. Null once the call has been confirmed and is processing or completed."}, "call": {"$ref": "#/components/schemas/PublicCallSummary", "description": "Call record"}}, "type": "object", "required": ["call"], "title": "BeginUploadResponse"}, "CPCallDirection": {"type": "string", "enum": ["INBOUND", "OUTBOUND"], "title": "CPCallDirection"}, "CPDocumentStatus": {"type": "string", "enum": ["UPLOADING", "INDEXING", "FAILED_UPLOADING", "FAILED_INDEXING", "PREPROCESSED", "FAILED_PREPROCESSING", "FAILED_UPSERT_INDEXING", "INVALID", "READY"], "title": "CPDocumentStatus", "description": "Tracks the status of a copilot document"}, "CPEmailDirection": {"type": "string", "enum": ["INBOUND", "OUTBOUND"], "title": "CPEmailDirection", "description": "Which way an email moved relative to the firm mailbox."}, "CallData": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the call"}, "callSource": {"$ref": "#/components/schemas/CallSource", "description": "Source of the call"}, "fromNumber": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Fromnumber", "description": "Phone number of the caller"}, "transcript": {"type": "string", "title": "Transcript", "description": "Transcript of the lead"}, "documentStatus": {"$ref": "#/components/schemas/CPDocumentStatus", "description": "Status of the document indexing"}}, "type": "object", "required": ["id", "callSource", "fromNumber", "transcript", "documentStatus"], "title": "CallData"}, "CallDirectionFilter": {"type": "string", "enum": ["INBOUND", "OUTBOUND"], "title": "CallDirectionFilter"}, "CallSource": {"type": "string", "enum": ["CALL_HARBOR", "CALL_RAIL", "DIALPAD", "EIGHTXEIGHT_WORK", "EVE_API", "FIVE9", "OTHER", "RING_CENTRAL_CX", "RING_CENTRAL_EX", "SCRIBE_CALL", "SPECTRUM_VOIP", "THREECX", "VOICE_AI_API", "ZOOM_CONTACT_CENTER", "ZOOM_PHONE"], "title": "CallSource"}, "CallSourceFilter": {"type": "string", "enum": ["EVE_VOICE_AI", "ZOOM_CONTACT_CENTER", "ZOOM_PHONE", "RING_CENTRAL_EX", "EVE_API"], "title": "CallSourceFilter"}, "CallerContactData": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "description": "Full name of the caller."}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Email", "description": "Email address of the caller."}, "phone": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Phone", "description": "Phone number of the external party: the caller on an inbound call, the callee on an outbound call."}}, "type": "object", "title": "CallerContactData"}, "CaseType": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Eve ID of the value"}, "externalId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalid", "description": "Your ID of the value, or null if the API did not set the value"}, "name": {"type": "string", "title": "Name", "description": "Name of the value in Eve"}}, "type": "object", "required": ["id", "externalId", "name"], "title": "CaseType", "description": "Case type of the matter."}, "CaseTypeReference": {"properties": {"externalId": {"type": "string", "minLength": 1, "title": "Externalid", "description": "Your ID of the value"}, "name": {"type": "string", "minLength": 1, "title": "Name", "description": "Name of the value. If Eve has a value with the same name that is not linked to an ID, Eve links that value to your ID. Otherwise Eve creates the value."}}, "type": "object", "required": ["externalId", "name"], "title": "CaseTypeReference", "description": "A case type from your system, in the practice area of the same request."}, "ChaseAttemptData": {"properties": {"attemptNumber": {"type": "integer", "title": "Attemptnumber", "description": "1-based position of this call attempt within the chase"}, "calledAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Calledat", "description": "When the dial was placed (ISO 8601); null if never dialed"}, "outcome": {"anyOf": [{"$ref": "#/components/schemas/ChaseAttemptOutcome"}, {"type": "null"}], "description": "Connection outcome of the dial; null while pending or if the dial failed pre-ring"}, "voicemailLeft": {"type": "boolean", "title": "Voicemailleft", "description": "Whether the scripted voicemail was left on this dial", "default": false}, "callId": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Callid", "description": "Eve call id carrying the recording/transcript"}}, "type": "object", "required": ["attemptNumber"], "title": "ChaseAttemptData"}, "ChaseAttemptOutcome": {"type": "string", "enum": ["CONNECTED", "NOT_CONNECTED", "VOICEMAIL", "BUSY"], "title": "ChaseAttemptOutcome"}, "ChaseConsent": {"properties": {"obtained": {"type": "boolean", "title": "Obtained", "description": "Attestation that the firm holds prior express consent to call this lead. Must be true."}, "source": {"type": "string", "minLength": 1, "title": "Source", "description": "Where the consent lives, e.g. 'website form checkbox, submission 2026-08-01'. Stored as the audit record."}}, "type": "object", "required": ["obtained", "source"], "title": "ChaseConsent"}, "ChaseDetails": {"properties": {"chaseId": {"type": "string", "format": "uuid", "title": "Chaseid", "description": "ID of the chase"}, "leadId": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Leadid", "description": "Eve lead id this chase belongs to \u2014 usable on GET /leads/{id} and /chase/stop"}, "status": {"$ref": "#/components/schemas/ChaseStatus", "description": "Whether the chase is still dialing"}, "endReason": {"anyOf": [{"$ref": "#/components/schemas/ChaseEndReason"}, {"type": "null"}], "description": "Why the chase ended; null while active"}, "attemptsMade": {"type": "integer", "title": "Attemptsmade", "description": "Dials placed so far"}, "nextAttemptAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Nextattemptat", "description": "When the next dial is scheduled (ISO 8601); null when none is queued"}, "startedAt": {"type": "string", "title": "Startedat", "description": "When the chase started (ISO 8601)"}, "endedAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Endedat", "description": "When the chase ended (ISO 8601); null while active"}, "attempts": {"items": {"$ref": "#/components/schemas/ChaseAttemptData"}, "type": "array", "title": "Attempts", "description": "Per-dial history, oldest first"}, "phone": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Phone", "description": "The E.164 number this chase dials"}}, "type": "object", "required": ["chaseId", "status", "attemptsMade", "startedAt"], "title": "ChaseDetails"}, "ChaseEndReason": {"type": "string", "enum": ["COMPLETED", "OPTED_OUT", "STOPPED", "EXHAUSTED", "WRONG_NUMBER", "INVALID_NUMBER", "CALLBACK_REQUESTED", "DECLINED_AI"], "title": "ChaseEndReason"}, "ChaseStartState": {"type": "string", "enum": ["ACTIVE", "PENDING"], "title": "ChaseStartState"}, "ChaseStatus": {"type": "string", "enum": ["ACTIVE", "ENDED"], "title": "ChaseStatus"}, "ConfirmDocumentsUploadRequest": {"properties": {"externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter. Exactly one of external_matter_id or external_lead_id must be provided (mutually exclusive)"}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead. Exactly one of external_matter_id or external_lead_id must be provided (mutually exclusive)"}, "externalDocumentIds": {"items": {"type": "string"}, "type": "array", "title": "Externaldocumentids", "description": "List of external document IDs"}}, "type": "object", "required": ["externalDocumentIds"], "title": "ConfirmDocumentsUploadRequest"}, "ConfirmDocumentsUploadResponse": {"properties": {"successfulDocuments": {"items": {"$ref": "#/components/schemas/Document"}, "type": "array", "title": "Successfuldocuments", "description": "List of documents"}, "failedDocuments": {"items": {"$ref": "#/components/schemas/DocumentConfirmFailure"}, "type": "array", "title": "Faileddocuments", "description": "List of documents that not be confirmed uploaded"}}, "type": "object", "required": ["successfulDocuments", "failedDocuments"], "title": "ConfirmDocumentsUploadResponse"}, "ConfirmUploadResponse": {"properties": {"call": {"$ref": "#/components/schemas/PublicCallSummary", "description": "Call record"}}, "type": "object", "required": ["call"], "title": "ConfirmUploadResponse"}, "CustomData": {"properties": {"matterId": {"type": "string", "format": "uuid", "title": "Matterid", "description": "Eve ID of the matter"}, "sizeBytes": {"type": "integer", "title": "Sizebytes", "description": "Size of the stored JSON in bytes"}, "uploadedAt": {"type": "string", "format": "date-time", "title": "Uploadedat", "description": "Time of the last stored custom data"}}, "type": "object", "required": ["matterId", "sizeBytes", "uploadedAt"], "title": "CustomData"}, "CustomDataResponse": {"properties": {"customData": {"$ref": "#/components/schemas/CustomData", "description": "Custom data of the matter"}}, "type": "object", "required": ["customData"], "title": "CustomDataResponse"}, "DeleteAllByExternalIdRequest": {"properties": {"externalDocumentId": {"type": "string", "title": "Externaldocumentid", "description": "External ID of the document"}}, "type": "object", "required": ["externalDocumentId"], "title": "DeleteAllByExternalIdRequest"}, "DeletedDocument": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the document"}, "externalId": {"type": "string", "title": "Externalid", "description": "External ID of the document"}}, "type": "object", "required": ["id", "externalId"], "title": "DeletedDocument"}, "DeletedEmail": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the email"}, "externalMessageId": {"type": "string", "title": "Externalmessageid", "description": "Your ID of the email"}}, "type": "object", "required": ["id", "externalMessageId"], "title": "DeletedEmail"}, "DeletedNote": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the note"}, "externalId": {"type": "string", "title": "Externalid", "description": "External ID of the note"}}, "type": "object", "required": ["id", "externalId"], "title": "DeletedNote"}, "Document": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the document"}, "externalId": {"type": "string", "title": "Externalid", "description": "External ID of the document"}, "fileName": {"type": "string", "title": "Filename", "description": "Name of the document"}, "folderPath": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Folderpath", "description": "Path to the folder containing the document"}, "displayName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Displayname", "description": "Display name of the document"}, "createdAt": {"type": "string", "title": "Createdat", "description": "ISO timestamp of when the document was created"}, "updatedAt": {"type": "string", "title": "Updatedat", "description": "ISO timestamp of when the document was last updated"}, "status": {"$ref": "#/components/schemas/DocumentStatus", "description": "Status of the document"}, "contentVersion": {"type": "string", "title": "Contentversion", "description": "Version of the content of the document"}, "mimeType": {"type": "string", "title": "Mimetype", "description": "MIME type of the document"}, "failedReason": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Failedreason", "description": "Reason the document failed to upload"}}, "type": "object", "required": ["id", "externalId", "fileName", "createdAt", "updatedAt", "status", "contentVersion", "mimeType"], "title": "Document"}, "DocumentConfirmFailure": {"properties": {"externalDocumentId": {"type": "string", "title": "Externaldocumentid", "description": "ID of the document"}, "status": {"anyOf": [{"$ref": "#/components/schemas/DocumentStatus"}, {"type": "null"}], "description": "Status of the document"}, "failureType": {"$ref": "#/components/schemas/DocumentConfirmFailureType", "description": "Failure type of the document"}, "failureReason": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Failurereason", "description": "Failure reason"}}, "type": "object", "required": ["externalDocumentId", "failureType"], "title": "DocumentConfirmFailure"}, "DocumentConfirmFailureType": {"type": "string", "enum": ["NOT_FOUND", "INVALID_STATUS", "OTHER"], "title": "DocumentConfirmFailureType"}, "DocumentSortBy": {"type": "string", "enum": ["CREATED_AT", "LAST_UPDATED_AT"], "title": "DocumentSortBy"}, "DocumentStatus": {"type": "string", "enum": ["UPLOADING", "INDEXING", "READY", "FAILED_UPLOADING", "FAILED_INDEXING", "UNSUPPORTED"], "title": "DocumentStatus", "description": "Tracks the status of a copilot document"}, "Email": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the email"}, "externalMessageId": {"type": "string", "title": "Externalmessageid", "description": "Your ID of the email. Unique in the matter."}, "threadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Threadid", "description": "Your ID of the thread of the email"}, "inReplyTo": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Inreplyto", "description": "externalMessageId of the email that this email replies to"}, "referenceIds": {"items": {"type": "string"}, "type": "array", "title": "Referenceids", "description": "externalMessageId values of the earlier emails in the thread"}, "direction": {"anyOf": [{"$ref": "#/components/schemas/CPEmailDirection"}, {"type": "null"}], "description": "INBOUND (to the firm) or OUTBOUND (from the firm)"}, "fromAddress": {"type": "string", "title": "Fromaddress", "description": "Sender email address"}, "toAddresses": {"items": {"type": "string"}, "type": "array", "title": "Toaddresses", "description": "Recipient email addresses"}, "ccAddresses": {"items": {"type": "string"}, "type": "array", "title": "Ccaddresses", "description": "CC email addresses"}, "bccAddresses": {"items": {"type": "string"}, "type": "array", "title": "Bccaddresses", "description": "BCC email addresses"}, "subject": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Subject", "description": "Subject of the email"}, "body": {"type": "string", "title": "Body", "description": "Plain-text body of the email"}, "sentAt": {"type": "string", "title": "Sentat", "description": "ISO timestamp of when the email was sent"}, "externalDocumentIds": {"items": {"type": "string"}, "type": "array", "title": "Externaldocumentids", "description": "External IDs of the documents linked to the email. A document that another email already holds is not linked again, so it is not in this list."}, "createdAt": {"type": "string", "title": "Createdat", "description": "ISO timestamp of when the email was created in Eve"}, "updatedAt": {"type": "string", "title": "Updatedat", "description": "ISO timestamp of when the email was last updated in Eve"}}, "type": "object", "required": ["id", "externalMessageId", "threadId", "inReplyTo", "referenceIds", "direction", "fromAddress", "toAddresses", "ccAddresses", "bccAddresses", "subject", "body", "sentAt", "externalDocumentIds", "createdAt", "updatedAt"], "title": "Email"}, "EmailSortBy": {"type": "string", "enum": ["SENT_AT", "CREATED_AT", "LAST_UPDATED_AT"], "title": "EmailSortBy"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "LeadDetails": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the lead"}, "externalId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalid", "description": "External ID of the lead"}, "externalLeadUrl": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadurl", "description": "External URL for the lead"}, "name": {"type": "string", "title": "Name", "description": "Name of the lead"}, "createdAt": {"type": "string", "title": "Createdat", "description": "Created at"}, "lastUpdatedAt": {"type": "string", "title": "Lastupdatedat", "description": "Last updated at"}, "status": {"$ref": "#/components/schemas/LeadStatus", "description": "Status of the lead"}, "sourceType": {"$ref": "#/components/schemas/LeadSourceType", "description": "Source type of the lead"}, "visibility": {"$ref": "#/components/schemas/LeadVisibility", "description": "Visibility of the lead"}, "voiceAgentMetadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Voiceagentmetadata", "description": "Voice agent metadata of the lead"}, "associatedUsers": {"items": {"$ref": "#/components/schemas/User"}, "type": "array", "title": "Associatedusers", "description": "Users associated with the lead"}, "overview": {"anyOf": [{"$ref": "#/components/schemas/LeadOverview"}, {"type": "null"}], "description": "Overview of the lead if generated"}, "calls": {"items": {"$ref": "#/components/schemas/CallData"}, "type": "array", "title": "Calls", "description": "Call data of the lead"}, "chase": {"anyOf": [{"$ref": "#/components/schemas/ChaseDetails"}, {"type": "null"}], "description": "Most recent lead chase for this lead, if any (see POST /leads/{id}/chase)"}}, "type": "object", "required": ["id", "name", "createdAt", "lastUpdatedAt", "status", "sourceType", "visibility", "voiceAgentMetadata", "overview", "calls"], "title": "LeadDetails"}, "LeadOverview": {"properties": {"caseType": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Casetype", "description": "Case type of the lead"}, "summary": {"type": "string", "title": "Summary", "description": "Summary of the lead"}, "fields": {"items": {"$ref": "#/components/schemas/LeadOverviewField"}, "type": "array", "title": "Fields", "description": "Fields of the lead"}, "leadScoreResult": {"anyOf": [{"$ref": "#/components/schemas/LeadScoreResult"}, {"type": "null"}], "description": "Lead score result of the lead"}}, "type": "object", "required": ["caseType", "summary", "fields", "leadScoreResult"], "title": "LeadOverview"}, "LeadOverviewField": {"properties": {"id": {"type": "string", "title": "Id", "description": "Id of the field", "deprecated": true}, "key": {"type": "string", "title": "Key", "description": "Key of the field"}, "name": {"type": "string", "title": "Name", "description": "Name of the field"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Value", "description": "Value of the field, if available"}}, "type": "object", "required": ["id", "key", "name", "value"], "title": "LeadOverviewField"}, "LeadScoreResult": {"properties": {"score": {"type": "integer", "title": "Score", "description": "Score of the lead"}, "scoreReasoning": {"type": "string", "title": "Scorereasoning", "description": "Reasoning of the lead score"}}, "type": "object", "required": ["score", "scoreReasoning"], "title": "LeadScoreResult"}, "LeadSortBy": {"type": "string", "enum": ["NAME", "CREATED_AT", "LAST_UPDATED_AT"], "title": "LeadSortBy"}, "LeadSourceFilter": {"type": "string", "enum": ["EVE_LEAD_INGESTION_API", "EVE_MANUAL", "EVE_SCRIBE", "EVE_VOICE_AI", "ALL"], "title": "LeadSourceFilter"}, "LeadSourceType": {"type": "string", "enum": ["EVE_LEAD_INGESTION_API", "EVE_MANUAL", "EVE_SCRIBE", "EVE_VOICE_AI"], "title": "LeadSourceType"}, "LeadStatus": {"type": "string", "enum": ["OPEN", "SIGNED", "CLOSED", "NOT_CONTACTED", "NO_RESPONSE", "INVESTIGATION", "SUPERVISOR_REVIEW", "RETAINER_OUT", "SIGNED_NO_MATTER", "REFERRED_OUT"], "title": "LeadStatus", "description": "Public lead status: the legacy contract plus the lead workflow statuses.\n\nOPEN/SIGNED/CLOSED are the original values and stay valid for external consumers. The\nworkflow values mirror the internal CPLeadWorkflowStatus: NOT_CONTACTED, NO_RESPONSE,\nINVESTIGATION, SUPERVISOR_REVIEW, RETAINER_OUT and REFERRED_OUT map 1:1, internal\nworkflow SIGNED surfaces as SIGNED_NO_MATTER (retainer signed, lead not yet converted\nto a matter \u2014 distinct from legacy SIGNED), and workflow CLOSED reuses CLOSED.\n\nA lead WITH a workflow status returns the workflow-derived value; a lead without one\nreturns the legacy 3-value mapping. On writes, the three legacy values keep their\noriginal semantics (legacy write path, so CLOSED needs no close reason); workflow\nvalues write the corresponding internal workflow status."}, "LeadStatusFilter": {"type": "string", "enum": ["OPEN", "SIGNED", "CLOSED", "NOT_CONTACTED", "NO_RESPONSE", "INVESTIGATION", "SUPERVISOR_REVIEW", "RETAINER_OUT", "SIGNED_NO_MATTER", "REFERRED_OUT", "ALL"], "title": "LeadStatusFilter"}, "LeadSubmissionResponseDto": {"properties": {"submissionId": {"type": "string", "format": "uuid", "title": "Submissionid", "description": "ID of the stored submission"}, "status": {"type": "string", "const": "received", "title": "Status", "description": "Always 'received' on 202", "default": "received"}, "warnings": {"items": {"$ref": "#/components/schemas/LeadSubmissionWarning"}, "type": "array", "title": "Warnings", "description": "Standard-key presence warnings. The lead is created either way; AI extraction may still recover missing fields."}}, "type": "object", "required": ["submissionId"], "title": "LeadSubmissionResponseDto"}, "LeadSubmissionWarning": {"properties": {"code": {"$ref": "#/components/schemas/LeadSubmissionWarningCode", "description": "Stable warning code"}, "message": {"type": "string", "title": "Message", "description": "Human-readable explanation for the sender"}}, "type": "object", "required": ["code", "message"], "title": "LeadSubmissionWarning"}, "LeadSubmissionWarningCode": {"type": "string", "enum": ["missing_name", "missing_phone", "missing_email", "unrecognized_shape"], "title": "LeadSubmissionWarningCode"}, "LeadSummary": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the lead"}, "externalId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalid", "description": "External ID of the lead"}, "externalLeadUrl": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadurl", "description": "External URL for the lead"}, "name": {"type": "string", "title": "Name", "description": "Name of the lead"}, "createdAt": {"type": "string", "title": "Createdat", "description": "Created at"}, "lastUpdatedAt": {"type": "string", "title": "Lastupdatedat", "description": "Last updated at"}, "status": {"$ref": "#/components/schemas/LeadStatus", "description": "Status of the lead"}, "sourceType": {"$ref": "#/components/schemas/LeadSourceType", "description": "Source type of the lead"}, "visibility": {"$ref": "#/components/schemas/LeadVisibility", "description": "Visibility of the lead"}, "voiceAgentMetadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Voiceagentmetadata", "description": "Voice agent metadata of the lead"}, "associatedUsers": {"items": {"$ref": "#/components/schemas/User"}, "type": "array", "title": "Associatedusers", "description": "Users associated with the lead"}}, "type": "object", "required": ["id", "name", "createdAt", "lastUpdatedAt", "status", "sourceType", "visibility", "voiceAgentMetadata"], "title": "LeadSummary"}, "LeadVisibility": {"type": "string", "enum": ["ORG", "USER"], "title": "LeadVisibility"}, "ListCallsResponse": {"properties": {"hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total count of items"}, "items": {"items": {"$ref": "#/components/schemas/PublicCallSummary"}, "type": "array", "title": "Items", "description": "Page of call objects."}}, "type": "object", "required": ["hasNext", "hasPrevious", "totalCount", "items"], "title": "ListCallsResponse"}, "ListLeadsResponse": {"properties": {"hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is a next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is a previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total number of leads"}, "items": {"items": {"$ref": "#/components/schemas/LeadSummary"}, "type": "array", "title": "Items", "description": "List of leads"}}, "type": "object", "required": ["hasNext", "hasPrevious", "totalCount", "items"], "title": "ListLeadsResponse"}, "ListMattersResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/Matter"}, "type": "array", "title": "Items", "description": "List of matters"}, "hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is a next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is a previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total number of matters"}}, "type": "object", "required": ["items", "hasNext", "hasPrevious", "totalCount"], "title": "ListMattersResponse"}, "ListVoiceAgentsResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PublicVoiceAgent"}, "type": "array", "title": "Items", "description": "The firm's intake voice agents that have a phone number to call from"}}, "type": "object", "required": ["items"], "title": "ListVoiceAgentsResponse"}, "Matter": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the matter"}, "externalId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalid", "description": "External ID of the matter"}, "name": {"type": "string", "title": "Name", "description": "Name of the matter"}, "associatedUsers": {"items": {"$ref": "#/components/schemas/MatterUser"}, "type": "array", "title": "Associatedusers", "description": "Users associated with the matter"}, "visibility": {"$ref": "#/components/schemas/MatterVisibility", "description": "Visibility of the matter"}, "closed": {"type": "boolean", "title": "Closed", "description": "Whether the matter is closed"}, "createdAt": {"type": "string", "title": "Createdat", "description": "ISO timestamp of when the matter was created"}, "updatedAt": {"type": "string", "title": "Updatedat", "description": "ISO timestamp of when the matter was last updated"}, "practiceArea": {"anyOf": [{"$ref": "#/components/schemas/PracticeArea"}, {"type": "null"}], "description": "Practice area of the matter"}, "caseType": {"anyOf": [{"$ref": "#/components/schemas/CaseType"}, {"type": "null"}], "description": "Case type of the matter"}, "stage": {"anyOf": [{"$ref": "#/components/schemas/Stage"}, {"type": "null"}], "description": "Stage of the matter. A closed matter has no stage. The stage can come from the Eve app."}}, "type": "object", "required": ["id", "externalId", "name", "associatedUsers", "visibility", "closed", "createdAt", "updatedAt", "practiceArea", "caseType", "stage"], "title": "Matter"}, "MatterResponse": {"properties": {"matter": {"$ref": "#/components/schemas/Matter", "description": "Matter"}, "associatedUsersWarnings": {"items": {"$ref": "#/components/schemas/AssociatedUserWarning"}, "type": "array", "title": "Associateduserswarnings", "description": "Users and team roles that the sync did not apply. The rest of the matter synced."}}, "type": "object", "required": ["matter"], "title": "MatterResponse"}, "MatterStateFilter": {"type": "string", "enum": ["OPEN", "CLOSED", "ALL"], "title": "MatterStateFilter"}, "MatterUser": {"properties": {"email": {"type": "string", "title": "Email", "description": "Email of the user"}, "id": {"type": "string", "title": "Id", "description": "Eve ID of the user"}, "teamRoles": {"items": {"$ref": "#/components/schemas/AssignedTeamRole"}, "type": "array", "title": "Teamroles", "description": "Team roles that the API gave the user on the matter. Roles assigned in the Eve app are not listed."}}, "type": "object", "required": ["email", "id"], "title": "MatterUser"}, "MatterUserRequest": {"properties": {"email": {"type": "string", "title": "Email", "description": "Email of the user"}, "teamRoles": {"anyOf": [{"items": {"$ref": "#/components/schemas/TeamRoleReference"}, "type": "array"}, {"type": "null"}], "title": "Teamroles", "description": "Team roles of the user on the matter. If any user in the request has teamRoles, the request sets the full team: users without teamRoles lose the roles that the API gave them. Eve creates a role that does not exist yet."}}, "type": "object", "required": ["email"], "title": "MatterUserRequest"}, "MatterVisibility": {"type": "string", "enum": ["ORG", "USER"], "title": "MatterVisibility"}, "MattersSortBy": {"type": "string", "enum": ["NAME", "CREATED_AT"], "title": "MattersSortBy"}, "Note": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of the note"}, "externalId": {"type": "string", "title": "Externalid", "description": "External ID of the note"}, "body": {"type": "string", "title": "Body", "description": "Body text of the note"}, "createdAt": {"type": "string", "title": "Createdat", "description": "ISO timestamp of when the note was created"}, "updatedAt": {"type": "string", "title": "Updatedat", "description": "ISO timestamp of when the note was last updated"}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title", "description": "Title text of the note"}, "authorEmail": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Authoremail", "description": "Email of the author of the note"}, "authorName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Authorname", "description": "Name of the author of the note"}}, "type": "object", "required": ["id", "externalId", "body", "createdAt", "updatedAt", "title", "authorEmail", "authorName"], "title": "Note"}, "NoteSortBy": {"type": "string", "enum": ["CREATED_AT", "LAST_UPDATED_AT"], "title": "NoteSortBy"}, "PracticeArea": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Eve ID of the value"}, "externalId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalid", "description": "Your ID of the value, or null if the API did not set the value"}, "name": {"type": "string", "title": "Name", "description": "Name of the value in Eve"}}, "type": "object", "required": ["id", "externalId", "name"], "title": "PracticeArea", "description": "Practice area of the matter."}, "PracticeAreaReference": {"properties": {"externalId": {"type": "string", "minLength": 1, "title": "Externalid", "description": "Your ID of the value"}, "name": {"type": "string", "minLength": 1, "title": "Name", "description": "Name of the value. If Eve has a value with the same name that is not linked to an ID, Eve links that value to your ID. Otherwise Eve creates the value."}}, "type": "object", "required": ["externalId", "name"], "title": "PracticeAreaReference", "description": "A practice area from your system."}, "PublicCallStatus": {"type": "string", "enum": ["NOT_STARTED", "SYNCING", "FAILED_SYNCING", "PROCESSING", "FAILED_PROCESSING", "COMPLETED", "NOT_APPLICABLE"], "title": "PublicCallStatus"}, "PublicCallSummary": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Eve call ID."}, "externalCallId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalcallid", "description": "External identifier for the call."}, "startedAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Startedat", "description": "ISO timestamp when the call started."}, "endedAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Endedat", "description": "ISO timestamp when the call ended."}, "direction": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Direction", "description": "INBOUND or OUTBOUND."}, "fromNumber": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Fromnumber", "description": "Caller phone number (E.164)."}, "toNumber": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Tonumber", "description": "Callee phone number (E.164)."}, "operatorName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Operatorname", "description": "Name of the operator on the call."}, "operatorEmail": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Operatoremail", "description": "Email of the operator on the call."}, "operatorId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Operatorid", "description": "Your internal operator identifier, if provided when syncing."}, "status": {"anyOf": [{"$ref": "#/components/schemas/PublicCallStatus"}, {"type": "null"}], "description": "e.g. PROCESSING, COMPLETED."}, "createdAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Createdat", "description": "ISO timestamp when the call was created in Eve."}, "caseType": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Casetype", "description": "Case type identified during the call."}, "callerContactData": {"anyOf": [{"$ref": "#/components/schemas/CallerContactData"}, {"type": "null"}], "description": "Contact information for the external party: the caller on an inbound call, the callee on an outbound call."}, "extractions": {"additionalProperties": {"anyOf": [{"type": "string"}, {"type": "null"}]}, "type": "object", "title": "Extractions", "description": "User-defined LLM-extracted values from the call. Keys and values vary by voice agent configuration."}, "summary": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Summary", "description": "AI-generated summary of the call."}, "transcript": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Transcript", "description": "Full call transcript."}, "externalMatterId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalmatterid", "description": "External ID of the matter the call is assigned to, if any."}, "externalLeadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadid", "description": "External ID of the lead the call is assigned to, if any."}}, "type": "object", "required": ["id", "extractions"], "title": "PublicCallSummary"}, "PublicTeamRole": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Eve ID of the team role"}, "externalId": {"type": "string", "title": "Externalid", "description": "Your ID of the team role"}, "name": {"type": "string", "title": "Name", "description": "Name of the team role in Eve"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description", "description": "Description of the team role"}}, "type": "object", "required": ["id", "externalId", "name", "description"], "title": "PublicTeamRole"}, "PublicTeamRoleListResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PublicTeamRole"}, "type": "array", "title": "Items", "description": "Team roles that the API created"}}, "type": "object", "required": ["items"], "title": "PublicTeamRoleListResponse"}, "PublicTeamRoleResponse": {"properties": {"teamRole": {"$ref": "#/components/schemas/PublicTeamRole", "description": "Team role"}}, "type": "object", "required": ["teamRole"], "title": "PublicTeamRoleResponse"}, "PublicUser": {"properties": {"id": {"type": "string", "title": "Id", "description": "Eve ID of the user"}, "email": {"type": "string", "title": "Email", "description": "Email of the user"}, "displayName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Displayname", "description": "Display name of the user"}}, "type": "object", "required": ["id", "email", "displayName"], "title": "PublicUser"}, "PublicVoiceAgent": {"properties": {"voiceAgentId": {"type": "string", "format": "uuid", "title": "Voiceagentid", "description": "Eve voice-agent id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "description": "Agent display name"}, "inboundPhoneNumber": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Inboundphonenumber", "description": "The agent's branded inbound number; a chase placed with this agent dials out from it"}}, "type": "object", "required": ["voiceAgentId"], "title": "PublicVoiceAgent"}, "SearchDocumentsResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/Document"}, "type": "array", "title": "Items", "description": "List of documents"}, "hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is a next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is a previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total number of documents for search query"}}, "type": "object", "required": ["items", "hasNext", "hasPrevious", "totalCount"], "title": "SearchDocumentsResponse"}, "SearchEmailsResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/Email"}, "type": "array", "title": "Items", "description": "List of emails"}, "hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is a next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is a previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total number of emails for search query"}}, "type": "object", "required": ["items", "hasNext", "hasPrevious", "totalCount"], "title": "SearchEmailsResponse"}, "SearchNotesResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/Note"}, "type": "array", "title": "Items", "description": "List of notes"}, "hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is a next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is a previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total number of notes for search query"}}, "type": "object", "required": ["items", "hasNext", "hasPrevious", "totalCount"], "title": "SearchNotesResponse"}, "SortOrder": {"type": "string", "enum": ["Asc", "Desc"], "title": "SortOrder"}, "Stage": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Eve ID of the value"}, "externalId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalid", "description": "Your ID of the value, or null if the API did not set the value"}, "name": {"type": "string", "title": "Name", "description": "Name of the value in Eve"}, "enteredAt": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Enteredat", "description": "ISO timestamp of when the matter entered the stage, or null if Eve has no stage history for it"}}, "type": "object", "required": ["id", "externalId", "name", "enteredAt"], "title": "Stage", "description": "Stage of the matter."}, "StageReference": {"properties": {"externalId": {"type": "string", "minLength": 1, "title": "Externalid", "description": "Your ID of the value"}, "name": {"type": "string", "minLength": 1, "title": "Name", "description": "Name of the value. If Eve has a value with the same name that is not linked to an ID, Eve links that value to your ID. Otherwise Eve creates the value."}, "enteredAt": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Enteredat", "description": "Time when the matter entered the stage. Eve uses it only when the stage changes. If null, Eve uses the time of the request"}}, "type": "object", "required": ["externalId", "name"], "title": "StageReference", "description": "A stage from your system, in the practice area of the same request."}, "StartChaseRequest": {"properties": {"consent": {"$ref": "#/components/schemas/ChaseConsent", "description": "Consent attestation \u2014 chases never start without one"}, "voiceAgentId": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Voiceagentid", "description": "Optional: the Eve voice-agent id of the intake agent that should place this chase call. List the available ids from GET /v1/leads/voice_agents. Overrides the firm's configured chase agent. Required when the firm set the chase agent to be specified per call (else the start is refused with AGENT_NOT_SPECIFIED). Refused with AGENT_NOT_FOUND if the id is unknown, or AGENT_HAS_NO_NUMBER if the agent has no branded number to dial from."}}, "type": "object", "required": ["consent"], "title": "StartChaseRequest"}, "StartChaseResponse": {"properties": {"status": {"$ref": "#/components/schemas/ChaseStartState", "description": "ACTIVE when dialing is scheduled; PENDING when awaiting lead creation"}, "chase": {"anyOf": [{"$ref": "#/components/schemas/ChaseDetails"}, {"type": "null"}], "description": "The started chase; null for PENDING (submission not yet processed)"}}, "type": "object", "required": ["status"], "title": "StartChaseResponse"}, "StopChaseResponse": {"properties": {"chase": {"$ref": "#/components/schemas/ChaseDetails", "description": "Final state of the chase"}}, "type": "object", "required": ["chase"], "title": "StopChaseResponse"}, "SyncDocumentRequest": {"properties": {"externalId": {"type": "string", "title": "Externalid", "description": "External ID of the document"}, "fileName": {"type": "string", "title": "Filename", "description": "Name of the document"}, "mimeType": {"type": "string", "title": "Mimetype", "description": "MIME type of the document. Changing this requires content version to also be updated."}, "displayName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Displayname", "description": "Display name of the document"}, "folderPath": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Folderpath", "description": "Path to the folder containing the document"}, "contentVersion": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Contentversion", "description": "Version of the content of the document. If not set, defaults to 1. If changed from the current version, will invalidate the current content and require a re-upload."}}, "type": "object", "required": ["externalId", "fileName", "mimeType"], "title": "SyncDocumentRequest"}, "SyncDocumentResponse": {"properties": {"signedUploadUrl": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Signeduploadurl", "description": "Signed upload URL for the document, returned if document should be uploaded"}, "document": {"$ref": "#/components/schemas/Document", "description": "Document object"}}, "type": "object", "required": ["document"], "title": "SyncDocumentResponse"}, "SyncEmailRequest": {"properties": {"externalMessageId": {"type": "string", "title": "Externalmessageid", "description": "Your ID of the email. Unique in the matter. Send the RFC 5322 Message-ID when you have one."}, "threadId": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Threadid", "description": "Your ID of the thread of the email"}, "inReplyTo": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Inreplyto", "description": "externalMessageId of the email that this email replies to"}, "referenceIds": {"items": {"type": "string"}, "type": "array", "title": "Referenceids", "description": "externalMessageId values of the earlier emails in the thread, oldest first"}, "direction": {"anyOf": [{"$ref": "#/components/schemas/CPEmailDirection"}, {"type": "null"}], "description": "INBOUND (to the firm) or OUTBOUND (from the firm)"}, "fromAddress": {"type": "string", "title": "Fromaddress", "description": "Sender email address"}, "toAddresses": {"items": {"type": "string"}, "type": "array", "minItems": 1, "title": "Toaddresses", "description": "Recipient email addresses. At least one."}, "ccAddresses": {"items": {"type": "string"}, "type": "array", "title": "Ccaddresses", "description": "CC email addresses"}, "bccAddresses": {"items": {"type": "string"}, "type": "array", "title": "Bccaddresses", "description": "BCC email addresses. Only outbound emails have them."}, "subject": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Subject", "description": "Subject of the email"}, "body": {"type": "string", "title": "Body", "description": "Plain-text body of the email. Eve does not accept HTML."}, "sentAt": {"type": "string", "format": "date-time", "title": "Sentat", "description": "ISO timestamp of when the email was sent. A time without an offset is UTC."}, "externalDocumentIds": {"items": {"type": "string"}, "type": "array", "title": "Externaldocumentids", "description": "External IDs of the attachments. Sync each one through the documents API first."}}, "type": "object", "required": ["externalMessageId", "fromAddress", "toAddresses", "body", "sentAt"], "title": "SyncEmailRequest"}, "SyncLeadRequest": {"properties": {"name": {"type": "string", "title": "Name", "description": "Name of the lead"}, "associatedUsers": {"items": {"$ref": "#/components/schemas/UserRequest"}, "type": "array", "title": "Associatedusers", "description": "Users to associate with the lead"}, "status": {"$ref": "#/components/schemas/LeadStatus", "description": "Status of the lead"}, "visibility": {"anyOf": [{"$ref": "#/components/schemas/LeadVisibility"}, {"type": "null"}], "description": "Visibility of the lead. If null, it will not be updated"}, "externalLeadUrl": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Externalleadurl", "description": "External URL for the lead. If null, it will not be updated"}, "caseType": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Casetype", "description": "Case type of the lead. If provided, sets a manual override. If explicitly set to null, clears the override and reverts to auto-detected value"}}, "type": "object", "required": ["name", "associatedUsers", "status"], "title": "SyncLeadRequest"}, "SyncLeadResponse": {"properties": {"lead": {"$ref": "#/components/schemas/LeadDetails", "description": "Lead details"}}, "type": "object", "required": ["lead"], "title": "SyncLeadResponse"}, "SyncMatterRequest": {"properties": {"name": {"type": "string", "title": "Name", "description": "Name of the matter"}, "associatedUsers": {"anyOf": [{"items": {"$ref": "#/components/schemas/MatterUserRequest"}, "type": "array"}, {"type": "null"}], "title": "Associatedusers", "description": "Users to include on the matter. Users that are not in the list lose their access and the team roles that the API gave them. If omitted, access and team roles do not change."}, "closed": {"type": "boolean", "title": "Closed", "description": "Whether the matter is closed", "default": false}, "visibility": {"anyOf": [{"$ref": "#/components/schemas/MatterVisibility"}, {"type": "null"}], "description": "Visibility of the matter. If null, it will not be updated"}, "practiceArea": {"anyOf": [{"$ref": "#/components/schemas/PracticeAreaReference"}, {"type": "null"}], "description": "Practice area of the matter. If null, it will not be updated"}, "caseType": {"anyOf": [{"$ref": "#/components/schemas/CaseTypeReference"}, {"type": "null"}], "description": "Case type of the matter, in the practice area. Requires practiceArea. If null, it will not be updated"}, "stage": {"anyOf": [{"$ref": "#/components/schemas/StageReference"}, {"type": "null"}], "description": "Stage of the matter, in the practice area. Requires practiceArea. If null, it will not be updated. A stage change in the Eve app is replaced on the next sync."}, "externalCreatedAt": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Externalcreatedat", "description": "Time when your system created the matter. Eve reads a value without a UTC offset as Pacific time (America/Los_Angeles) and stores UTC. Eve rejects a value on or before 1970-01-01 or more than one day in the future with 422. If null, Eve keeps the stored value."}, "externalLastUpdatedAt": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Externallastupdatedat", "description": "Time when your system last changed the matter. Eve reads a value without a UTC offset as Pacific time (America/Los_Angeles) and stores UTC. Eve rejects a value on or before 1970-01-01 or more than one day in the future with 422. If null, Eve keeps the stored value."}}, "type": "object", "required": ["name"], "title": "SyncMatterRequest"}, "SyncNoteRequest": {"properties": {"externalId": {"type": "string", "title": "Externalid", "description": "External ID of the note"}, "body": {"type": "string", "title": "Body", "description": "Body text of the note"}, "createdAt": {"type": "string", "title": "Createdat", "description": "ISO timestamp of when the note was created"}, "updatedAt": {"type": "string", "title": "Updatedat", "description": "ISO timestamp of when the note was last updated"}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title", "description": "Title text of the note"}, "authorEmail": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Authoremail", "description": "Email of the author of the note"}, "authorName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Authorname", "description": "Name of the author of the note"}}, "type": "object", "required": ["externalId", "body", "createdAt", "updatedAt", "title", "authorEmail", "authorName"], "title": "SyncNoteRequest"}, "TeamRoleReference": {"properties": {"externalId": {"type": "string", "minLength": 1, "title": "Externalid", "description": "Your ID of the team role"}, "name": {"type": "string", "minLength": 1, "title": "Name", "description": "Name of the team role. If the role exists with another name, Eve renames it."}}, "type": "object", "required": ["externalId", "name"], "title": "TeamRoleReference"}, "UpsertPublicTeamRoleRequest": {"properties": {"name": {"type": "string", "minLength": 1, "title": "Name", "description": "Name of the team role. If another Eve role has this name, Eve adds the suffix ' (EVE_API)'."}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description", "description": "Description of the team role"}}, "type": "object", "required": ["name"], "title": "UpsertPublicTeamRoleRequest"}, "User": {"properties": {"email": {"type": "string", "title": "Email", "description": "Email of the user"}, "id": {"type": "string", "title": "Id", "description": "Eve ID of the user"}}, "type": "object", "required": ["email", "id"], "title": "User"}, "UserListResponse": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PublicUser"}, "type": "array", "title": "Items", "description": "Active users of the organization, sorted by email"}, "hasNext": {"type": "boolean", "title": "Hasnext", "description": "Whether there is a next page"}, "hasPrevious": {"type": "boolean", "title": "Hasprevious", "description": "Whether there is a previous page"}, "totalCount": {"type": "integer", "title": "Totalcount", "description": "Total number of users that match the filter"}}, "type": "object", "required": ["items", "hasNext", "hasPrevious", "totalCount"], "title": "UserListResponse"}, "UserRequest": {"properties": {"email": {"type": "string", "title": "Email", "description": "Email of the user"}}, "type": "object", "required": ["email"], "title": "UserRequest"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "token"}}}}}}