### GET /v2/properties/{propertyId} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json Get property by Id ```markdown ### Parameters - **propertyId** (string, path, required): ID of property to return ### Responses #### 200 - Successful operation **Property** - **id** (string) (required): External ID of the property (example: "P-00451") - **internalId** (integer) (required): Our internal database id (example: 41251) - **name** (string) (required) (example: "Easy Living Apartments") - **note** (string) (example: "Test description") - **country** (string) (example: "Germany") - **city** (string) (example: "Munich") - **postalCode** (string) (example: "80331") - **number** (string) (example: "12345") - **mscNumber** (string) (example: "987654321") - **mscProviderName** (string) (example: "Messdienstleistungen GmbH, München") - **mscProviderIdentifier** (string) (example: "99") - **images** (array (string)) (example: ["https://s3-eu-central-1.amazonaws.com/..."]) - **addresses** (array (Address)) Array items: - **street** (string) (required) (example: "Main street 14") - **units** (array (string)) (required) - **responsibilities** (array (Responsibility)): The responsibilities for this property, both internal and external Array items: - **contactId** (string) (required) (example: "C412") - **contactInternalId** (number) (required) (example: 553) - **contactName** (string) (required) (example: "Max Mustermann") - **roleName** (string) (required) (example: "Hausverwaltung") - **roleType** (string (internal|external)) (required) (example: "internal") ("internal"|"external") - **email** (string) (example: "maxmustermann@hausverwaltung.de") - **telephone** (string) (example: "123 23123-0") - **customFields** (object): CustomFields can be created by managers and filled with any data. They have a type and are referenced by their name. (example: {"Info":"Some additional info","Area":85.1}) - **appLink** (string) (required): A link to the property in the casavi web app (example: "https://app.mycasavi.com/tenant/1/manage/communities/12345") #### 400 - Invalid data supplied Invalid data supplied #### 404 - Property not found Property not found ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/properties/{propertyId}" ``` ``` -------------------------------- ### GET /v2/posts Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json List of posts ```markdown ### Parameters - **propertyId** (string, query, optional): Property identifier - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/posts?propertyId=string&page=0" ``` ``` -------------------------------- ### GET /v2/tickets/checklists Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/tickets/checklists ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/tickets/checklists?page=0" ``` ``` -------------------------------- ### GET /v2/restHooks Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/restHooks ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/restHooks?page=0" ``` ``` -------------------------------- ### GET /v2/properties Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json List of properties received from casavi ```markdown ### Parameters - **modifiedAfter** (string, query, optional): Limit the returned Properties based on their last modified date. Supports ISO 8601 date format. (example: "2020-05-02T10:00:00") - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/properties?modifiedAfter=2020-05-02T10:00:00&page=0" ``` ``` -------------------------------- ### GET /v2/consumption/resources Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/consumption/resources ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/consumption/resources?page=0" ``` ``` -------------------------------- ### GET /v2/consumption/resources/{resourceId} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/consumption/resources/{resourceId} ```markdown ### Parameters - **resourceId** (string, path, required): ID of consumption resource to return ### Responses #### 200 - Successful operation **ConsumptionResource** - **id** (string) (required): External identifier of the consumption resource. Should be unique. (example: "res01") - **name** (string) (required): Consumption resource name. Should not be empty. (example: "Water") - **unit** (string) (required): Consumption resource measure unit. Should not be empty (example: "qm") - **notes** (string): Consumption resource notes (example: "Test type") #### 404 - Consumption resource not found Consumption resource not found ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/consumption/resources/{resourceId}" ``` ``` -------------------------------- ### GET /v2/properties/{propertyId}/responsibilities Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/properties/{propertyId}/responsibilities ```markdown ### Parameters - **propertyId** (string, path, required): ID of property - **showOnPortal** (boolean, query, optional): Limit the response to include only responsibilities that are shown on portal - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/properties/{propertyId}/responsibilities?showOnPortal=true&page=0" ``` ``` -------------------------------- ### GET /v2/posts/{postId} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/posts/{postId} ```markdown ### Parameters - **postId** (string, path, required): ID of the post to return ### Responses #### 200 - Successful operation **Post** - **id** (string) (required): Unique external ID of the post. If none is provided, a UUID will be generated automatically (example: "5512-4353") - **internalId** (integer) (required): Our internal database id (example: 591823) - **title** (string) (required): Title of the post (example: "Aufzug Reperatur") - **text** (string) (required): Main body text of the post (example: "Lorem Ipsum dolor sit amet") - **authorId** (string): Reference ID of the author. (example: "person412") - **authorName** (string): Name of the author. (example: "Max Mustermann") - **attachments** (array (AttachmentDetail)): Information about the attachments of the post Array items: - **id** (integer) (required): Our internal database id (example: 123) - **name** (string): File name with extension (example: "example.pdf") - **title** (string): Display title of the attachment - mostly the same as the name (example: "An example file") - **type** (string): MIME type of the file (example: "application/pdf") - **size** (integer): File size in bytes (example: 4523) - **url** (string): Temporary links to the attachments (example: "https://files.mycasavi.com/some-thing-123") - **propertyId** (string) (required): Reference ID of the property where the post is shared. (example: "property-412") - **allowComments** (boolean): Determines if comments are allowed for this post. (example: false) - **isImportant** (boolean): If you select this option, not only casavi users but also unregistered contacts whose email addresses you have entered will be notified by email. (example: false) - **showOnInfoboard** (boolean): Determines if the post should be shown on connected MyBoards if any. (example: false) - **publishAt** (string (date-time)): Publish date. Date formatted according to ISO 8601 (example: "2017-04-11T09:53:42.891Z") - **createdAt** (string (date-time)): Creation date. Date formatted according to ISO 8601 (example: "2017-04-11T09:53:42.891Z") #### 404 - Post not found Post not found ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/posts/{postId}" ``` ``` -------------------------------- ### GET /v2/documents/{documentId} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/documents/{documentId} ```markdown ### Parameters - **documentId** (string, path, required): id of the document to retrieve ### Responses #### 200 - Successful operation **Document** - **id** (string) (required) (example: "5512-4353") - **internalId** (integer) (required): Our internal database id for this document (example: 4215213) - **title** (string) (required) (example: "Musterstraße 3 - Whg 5 - Abrechnung 2021") - **type** (string) (example: "DocumentType") - **sharedWith** (array (union)) (required) Array items: - **with** (string (unit|property)) (required): Value: `property` (example: "property") ("unit"|"property") - **propertyId** (string) (required): Reference-ID of the property (example: "P-00451") - **roles** (array (string)) (required): Can be one of `owner`, `renter`, `resident`, `all`, `internal`, or the name of a custom service provider type prefixed with `custom:`. The service provider type will be created if it does not currently exist. If the roles array is empty in the request, the default behavior is to share with `all`. Sharing with `all` shares with the default roles `owner`, `renter`, and `resident` only. `internal` takes precedence over `all` and `all` takes precedence over other types defined in the array. If shared with `internal`, the response when getting the document will be an empty array. (example: ["owner","renter","custom:Board"]) - **resource** (string): Name of the storage provider used to retrieve this document (example: "someDMS") - **fileSize** (integer) (example: 20) - **publishedAt** (string (date)): Date of the document - will default to the import date (example: "2017-04-11T09:53:42.891Z") - **downloadCount** (integer): The amount of times the document has been downloaded (example: 26) - **firstDownloadAt** (string (date)): The date when the document has been downloaded the first time (example: "2017-04-15") #### 404 - Document not found Document not found ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/documents/{documentId}" ``` ``` -------------------------------- ### GET /v2/properties/{propertyId}/posts Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/properties/{propertyId}/posts ```markdown ### Parameters - **propertyId** (string, path, required): ID of property to return - **showOnInfoboard** (boolean, query, optional): Limit the response to include only posts that are shown on info board - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/properties/{propertyId}/posts?showOnInfoboard=true&page=0" ``` ``` -------------------------------- ### GET /v2/jobs/{jobId} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json Returns the status of a running import. ```markdown ### Parameters - **jobId** (string, path, required): Id of the import (Returned when starting an import (POST /import)) (example: "58eca7a398af3a14a3af2efe") ### Responses #### 200 - Information about the job **ImportJob** - **id** (string) (required) (example: "58eca7a398af3a14a3af2efe") - **tenantId** (number) (example: 1) - **createdAt** (string (date-time)) (example: "2017-04-10T09:53:42.891Z") - **completedAt** (string (date-time)) (example: "2017-04-11T09:53:42.891Z") - **completed** (boolean) (example: true) - **contactName** (string) (example: null) - **integrationType** (string) (example: "DOCUMENTS") - **results** (object) - **contacts** (object) - **created** (integer) (example: 21) - **updated** (integer) (example: 214) - **deleted** (integer) (example: 0) - **failed** (array (ImportFailure)) Array items: - **entity** (object): Entity that was transmitted to importer (Contact/Property/Unit/...) - **errors** (array (ImportError)) Array items: - **model** (string) (example: "Contact") - **field** (string) (example: "id") - **reason** (string) (example: "not_found") - **properties** (object) - **units** (object) - **documents** (object) - **responsibilities** (object) - **updateExisting** (boolean) (example: true) - **fileContainHeaders** (boolean) (example: null) - **mapping** (object) (example: null) - **uploadType** (string) (example: "api") - **hasContent** (boolean) (example: true) - **progress** (number) (example: 1) - **running** (boolean) (example: false) #### 404 - No job found No job found ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/jobs/{jobId}" ``` ``` -------------------------------- ### GET /v2/staff Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json List of staff members in casavi ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/staff?page=0" ``` ``` -------------------------------- ### API Overview: casavi manager API Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json # ⚠ API V1 Version 2 is now the recommended version of the API. Please reference [API v1](https://api.mycasavi.com/v1/docs/manager) if you are still using that version. # Introduction casavi partner network / multiple persons adding puzzle pieces to the casavi logo casavi stands for an open integration culture. Thanks to our powerful API casavi is your central platform for the complete digitalisation of your property management processes. No duplicate data administration thanks to a direct connection to accounting and ERP systems – and through our big partner network there is no limit to your possibilities when it comes to additional functionality. Using this API you can connect to most of the functionality that casavi has to offer. All data is scoped to one customer account. Examples you can do with this API are: - import & update master data - import documents and track if they have been downloaded by customers - connect another workflow management system to the ticket system casavi uses. This documentation is generated from a Open API 2.0 document. Before we get to all the endpoints we explain the [authentication](#section/Authentication). In the following section we continue with the most often found [use cases](#section/Use-cases). > Attention: The maximum body size for file uploads is 15Mb, however due to the base64 encoding this limit is practically ~10Mb. We recommend not sending more than 20k entities at once. # Updates We are actively developing our API and extend it to cover new use cases. To stay up to date you can have a look at the [Changelog](#tag/Changelog). # Authentication You need an API key & a secret (supplied by your casavi customer service). Then follow these steps to authenticate against this API: 1. POST to `/authenticate` with application/json payload `{ key, secret }`. 2. You receive back a json with payload `{ token, expiresAt }`. 3. Use the `token` in the header field `token` of other requests. # Pagination We use cursor pagination with `page` query. We have a page size of 25 items. The response will contain a `_links.next` field with the next page cursor if there are more items. # Common fields in this API description ## IDs When an endpoint in this API is receiving or returning an `id` this is not the casavi internal database id, but instead a customer supplied reference id. This id is also shown in the management view as "Referenz ID". It can be anything you want want, so a database id or - as we recommend - an identifier that is human relatable like the property number. ## Dates Dates/Times are always returned in ISO 8601 format (YYYY-MM-DDThh:mm:ss.sssZ). They are also returned in UTC. # Use cases * [Import master data (properties, contacts and units) into casavi](#tag/Import) * [Synchronize/update tickets](#tag/Tickets) # Other We also have a documentation for the [Community API](/api/community/) which describes the API the community app uses. ```yaml # casavi manager API # Version: 2.12.17 # ⚠ API V1 Version 2 is now the recommended version of the API. Please reference [API v1](https://api.mycasavi.com/v1/docs/manager) if you are still using that version. # Introduction casavi partner network / multiple persons adding puzzle pieces to the casavi logo casavi stands for an open integration culture. Thanks to our powerful API casavi is your central platform for the complete digitalisation of your property management processes. No duplicate data administration thanks to a direct connection to accounting and ERP systems – and through our big partner network there is no limit to your possibilities when it comes to additional functionality. Using this API you can connect to most of the functionality that casavi has to offer. All data is scoped to one customer account. Examples you can do with this API are: - import & update master data - import documents and track if they have been downloaded by customers - connect another workflow management system to the ticket system casavi uses. This documentation is generated from a Open API 2.0 document. Before we get to all the endpoints we explain the [authentication](#section/Authentication). In the following section we continue with the most often found [use cases](#section/Use-cases). > Attention: The maximum body size for file uploads is 15Mb, however due to the base64 encoding this limit is practically ~10Mb. We recommend not sending more than 20k entities at once. # Updates We are actively developing our API and extend it to cover new use cases. To stay up to date you can have a look at the [Changelog](#tag/Changelog). # Authentication You need an API key & a secret (supplied by your casavi customer service). Then follow these steps to authenticate against this API: 1. POST to `/authenticate` with application/json payload `{ key, secret }`. 2. You receive back a json with payload `{ token, expiresAt }`. 3. Use the `token` in the header field `token` of other requests. # Pagination We use cursor pagination with `page` query. We have a page size of 25 items. The response will contain a `_links.next` field with the next page cursor if there are more items. # Common fields in this API description ## IDs When an endpoint in this API is receiving or returning an `id` this is not the casavi internal database id, but instead a customer supplied reference id. This id is also shown in the management view as "Referenz ID". It can be anything you want want, so a database id or - as we recommend - an identifier that is human relatable like the property number. ## Dates Dates/Times are always returned in ISO 8601 format (YYYY-MM-DDThh:mm:ss.sssZ). They are also returned in UTC. # Use cases * [Import master data (properties, contacts and units) into casavi](#tag/Import) * [Synchronize/update tickets](#tag/Tickets) # Other We also have a documentation for the [Community API](/api/community/) which describes the API the community app uses. # Base URL: https://api.mycasavi.com ``` -------------------------------- ### GET /v2/subcommunities/{subcommunityId} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json Get subcommunity by Id ```markdown ### Parameters - **subcommunityId** (string, path, required): ID of subcommunity to return ### Responses #### 200 - Successful operation **Subcommunity** - **id** (string) (required): Internal ID of the subcommunity (example: 123) - **name** (string) (required) (example: "House A") - **units** (array (Unit)) (required) Array items: - **id** (string) (required): External ID of the unit. Must be unique across all units (example: "P-00451-0001") - **internalId** (integer) (required): Our internal database id (example: 41251) - **number** (string): Sequential ID of the unit. Should be unique only in the property (example: "0001") - **area** (string): The unit area in square meters (example: "50.2") - **floor** (string): The floor where the unit is located (example: "3") - **rooms** (string): The number of rooms in the unit (example: "2") - **mscNumber** (string): The ID unit for the measuring service company (example: "15") - **propertyMscNumber** (string): The ID for the property by measuring service company (example: 15) - **purpose** (string (parking|commercial|private)) (required): The intended usage or purpose of the unit (example: "private") ("parking"|"commercial"|"private") - **votingShare** (number): The unit voting share (MEA) needed to determine the value based voting principle for this unit. This will only be present in the response if the Hybrid Digital Owner Assembly feature is active. (example: 3.141) - **name** (string) (required): Display name of the unit (example: "Unit 49812-1312-1") - **note** (string) (example: "Description for a unit") - **propertyId** (string): External ID of the property (example: "lbef1d5a-hbae-4620-81cd-65f7911ac623") - **address** (string): Street name of the unit (example: "Main street 5") - **contracts** (array (Contract)): Contracts in units are the only models inside the import that automatically removes items that are not in the current import. So if there are existing contracts in casavi for a unit and an import imports a different contract (identified by the associated contacts) the preexisting contacts are set to end at the date of the import, effectively ending access for those contacts. Array items: - **id** (string): External ID of the contract. Should be unique across all contracts (example: "P-00451-0001-01") - **contacts** (array (string)) (required): IDs of the contacts assigned to this unit (example: ["C-0000312"]) - **type** (string (renter|owner)) (required): Type of the relationship between contact and unit (example: "renter") ("renter"|"owner") - **startDate** (string (date-time)) (example: "2017-04-11T09:53:42.891Z") - **endDate** (string (date-time)) (example: "2019-04-11T09:53:42.891Z") - **createdAt** (string (date-time)): Date and time when contract was created, ISO 8601 (example: "2018-08-07T14:54:57Z") - **updatedAt** (string (date-time)): Date and time when contract was updated, ISO 8601 (example: "2019-04-11T09:53:42.891Z") - **customFields** (object): CustomFields can be created by managers and filled with any data. They have a type and are referenced by their name. (example: {"Type":"Commercial","Area":85.1}) - **appLink** (string) (required): A link to the unit in the casavi web app (example: "https://app.mycasavi.com/tenant/1/manage/communities/123/units/12345") #### 400 - Invalid data supplied Invalid data supplied #### 404 - Subcommunity not found Subcommunity not found ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/subcommunities/{subcommunityId}" ``` ``` -------------------------------- ### GET /v2/tickets/orders/types Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/tickets/orders/types ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/tickets/orders/types?page=0" ``` ``` -------------------------------- ### POST /v2/vulcavo/assembly-topic/status Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for POST /v2/vulcavo/assembly-topic/status ```markdown ### Request Body **Content-Type:** application/json ### Responses #### 201 - response Empty response body ### Example Usage ```bash curl -X POST "https://api.mycasavi.com/v2/vulcavo/assembly-topic/status" \ -H "Content-Type: application/json" \ -d '{}' ``` ``` -------------------------------- ### GET /v2/tickets/orders Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/tickets/orders ```markdown ### Parameters - **status** (string, query, optional): Enum: `OPEN` `ACCEPTED` `COMPLETED` `DECLINED` Order status - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/tickets/orders?status=string&page=0" ``` ``` -------------------------------- ### GET /v2/tickets/type-groups Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/tickets/type-groups ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/tickets/type-groups?page=0" ``` ``` -------------------------------- ### PATCH /v2/vulcavo/assembly-topic/{id} Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for PATCH /v2/vulcavo/assembly-topic/{id} ```markdown ### Parameters - **id** (string, path, required) ### Request Body **Content-Type:** application/json ### Responses #### 200 - response Empty response body ### Example Usage ```bash curl -X PATCH "https://api.mycasavi.com/v2/vulcavo/assembly-topic/{id}" \ -H "Content-Type: application/json" \ -d '{}' ``` ``` -------------------------------- ### GET /v2/tickets/types Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/tickets/types ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/tickets/types?page=0" ``` ``` -------------------------------- ### POST /v2/authenticate Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json key and secret can be obtained from your connectivity contact at casavi and give access to a whole casavi account. **Deprecation:** Before this method used three parameters: `apiKey`, `email` and `password`. This is deprecated, but still supported because we are mapping the parameters: - `secret` equals `password` - `key` equals `apiKey` and - `email` is just ignored. ```markdown ### Request Body **Content-Type:** application/json - **key** (string) (required): API key. (example: "04523b90-9ee1-49f7-af31-b1f24efe84ad") - **secret** (string) (required): API secret. (example: "ksdasji0-sf818-nfn81-ms9a-ams9d9a9as") ### Responses #### 200 - Token response **TokenResponse** - **token** (string) (required): The token to use for authentication (example: "a2cf47a9-3d2e-455e-a34b-7a79f11aa7f9") - **expiresAt** (string (date-time)) (required): UTC date time on which the token is expires (example: "1985-12-05T15:31:10Z") #### 400 - Invalid input Invalid input #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X POST "https://api.mycasavi.com/v2/authenticate" \ -H "Content-Type: application/json" \ -d '{ "key": "04523b90-9ee1-49f7-af31-b1f24efe84ad", "secret": "ksdasji0-sf818-nfn81-ms9a-ams9d9a9as" }' ``` ``` -------------------------------- ### GET /v2/units Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/units ```markdown ### Parameters - **includeInactiveContracts** (boolean, query, optional): Toggle to include inactive contracts in the response - **modifiedAfter** (string, query, optional): Limit the response to include only those units modified after a given date. Supports ISO 8601 date format. (example: "2020-05-02T10:00:00") ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/units?includeInactiveContracts=true&modifiedAfter=2020-05-02T10:00:00" ``` ``` -------------------------------- ### POST /v2/tickets/{ticketId}/surveys Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json Add new ticket survey ```markdown ### Parameters - **ticketId** (string, path, required): ID of ticket (example: "c8a375b3-d92f-43c2-b836-a5ac315c9c97") ### Request Body **Content-Type:** application/json - **id** (string) (required): Identifier of the ticket survey. Should be unique (example: "1") - **assignedToId** (string) (required): External ID of the contact the survey is assigned to (example: "E-000481") - **title** (string) (required): Survey title. Should not be empty (example: "Test survey") - **text** (string): Survey text to be shown additionally (example: "Some description to clarify what this question is about.") - **choices** (array (CreateChoice)) (required) Array items: - **value** (integer) (required): Value of the choice. Should be unique (example: 1) - **label** (string) (required): Label of the choice. Should be unique (example: "Answer 1") ### Responses #### 201 - Successful operation **TicketSurvey** - **id** (string) (required): Identifier of the ticket survey. Should be unique (example: "1") - **title** (string) (required): Survey title. Should not be empty (example: "Test survey") - **text** (string): Survey text to be shown additionally (example: "Some description to clarify what this question is about.") #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X POST "https://api.mycasavi.com/v2/tickets/{ticketId}/surveys" \ -H "Content-Type: application/json" \ -d '{ "id": "1", "assignedToId": "E-000481", "title": "Test survey", "text": "Some description to clarify what this question is about.", "choices": [ "value" ] }' ``` ``` -------------------------------- ### Schema: CreateAppointment Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json Schema definition for CreateAppointment ```markdown ## Schema: CreateAppointment Schema definition for CreateAppointment **Type:** object - **id** (string): A unique identifier for the appointment. If none is provided, a UUID will be generated automatically (example: "appointment-177") - **title** (string) (required): The title of the appointment (example: "Elevator repair") - **text** (string): The body text of the appointment (example: "Lorem Ipsum dolor sit amet") - **location** (string): Where the appointment takes place (example: "3rd floor") - **authorId** (string): Id of the user who creates the appointment (example: "person412") - **allDay** (boolean): Determines if the appointment lasts all day. (example: true) - **showOnInfoboard** (boolean): Determines if shown on info board. (example: true) - **propertyIds** (array (string)) (required): Reference IDs of the properties where the appointment is shared. (example: ["property-412","property-400","property-19"]) - **roles** (array (AppointmentRoleType)): List of roles who will receive the appointment (example: ["renter","owner","resident"]) - **notifyRecipients** (boolean): Notify all casavi users of appointment by message (example: true) - **dateStart** (string (date-time)) (required): Date and time appointment begins in ISO 8601 format. (example: "2017-03-05T11:00:00.000Z") - **dateEnd** (string (date-time)): Date and time appointment ends in ISO 8601 format. (example: "2017-03-05T14:00:00.000Z") ``` -------------------------------- ### GET /v2/documents/types Source: https://raw.githubusercontent.com/DevRico003/casavi-openapi/refs/heads/main/openapi.json API endpoint for GET /v2/documents/types ```markdown ### Parameters - **page** (integer, query, optional): Page number ### Responses #### 200 - Successful operation #### 400 - Invalid data supplied Invalid data supplied ### Example Usage ```bash curl -X GET "https://api.mycasavi.com/v2/documents/types?page=0" ``` ```