# ZeyOS REST API — LLM full working set ## Specs - REST OpenAPI: /__doc/openapi/api.json - OAuth 2.0 OpenAPI: /__doc/openapi/oauth2.json - Simple Auth OpenAPI: /__doc/openapi/auth.json ## Tag index (JSON) - /ai/openapi/tags.json ## Operations index (JSON) - /ai/openapi/operations.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Tag docs (Markdown) - accounts (6 endpoints): /ai/openapi/tag.accounts.md - actionsteps (6 endpoints): /ai/openapi/tag.actionsteps.md - addresses (6 endpoints): /ai/openapi/tag.addresses.md - applicationassets (3 endpoints): /ai/openapi/tag.applicationassets.md - applications (3 endpoints): /ai/openapi/tag.applications.md - appointments (6 endpoints): /ai/openapi/tag.appointments.md - associations (6 endpoints): /ai/openapi/tag.associations.md - binfiles (1 endpoints): /ai/openapi/tag.binfiles.md - campaigns (6 endpoints): /ai/openapi/tag.campaigns.md - categories (6 endpoints): /ai/openapi/tag.categories.md - channels (6 endpoints): /ai/openapi/tag.channels.md - comments (6 endpoints): /ai/openapi/tag.comments.md - components (6 endpoints): /ai/openapi/tag.components.md - contacts (6 endpoints): /ai/openapi/tag.contacts.md - contacts2contacts (6 endpoints): /ai/openapi/tag.contacts2contacts.md - contracts (6 endpoints): /ai/openapi/tag.contracts.md - couponcodes (6 endpoints): /ai/openapi/tag.couponcodes.md - coupons (6 endpoints): /ai/openapi/tag.coupons.md - customfields (3 endpoints): /ai/openapi/tag.customfields.md - davservers (6 endpoints): /ai/openapi/tag.davservers.md - devices (6 endpoints): /ai/openapi/tag.devices.md - documents (6 endpoints): /ai/openapi/tag.documents.md - dunning (6 endpoints): /ai/openapi/tag.dunning.md - dunning2transactions (6 endpoints): /ai/openapi/tag.dunning2transactions.md - entities2channels (6 endpoints): /ai/openapi/tag.entities2channels.md - events (6 endpoints): /ai/openapi/tag.events.md - feedservers (6 endpoints): /ai/openapi/tag.feedservers.md - files (6 endpoints): /ai/openapi/tag.files.md - follows (6 endpoints): /ai/openapi/tag.follows.md - forks (3 endpoints): /ai/openapi/tag.forks.md - general (2 endpoints): /ai/openapi/tag.general.md - groups (3 endpoints): /ai/openapi/tag.groups.md - groups2users (3 endpoints): /ai/openapi/tag.groups2users.md - invitations (6 endpoints): /ai/openapi/tag.invitations.md - items (6 endpoints): /ai/openapi/tag.items.md - ledgers (6 endpoints): /ai/openapi/tag.ledgers.md - likes (6 endpoints): /ai/openapi/tag.likes.md - links (6 endpoints): /ai/openapi/tag.links.md - mailinglists (6 endpoints): /ai/openapi/tag.mailinglists.md - mailingrecipients (6 endpoints): /ai/openapi/tag.mailingrecipients.md - mailservers (6 endpoints): /ai/openapi/tag.mailservers.md - messagereads (6 endpoints): /ai/openapi/tag.messagereads.md - messages (6 endpoints): /ai/openapi/tag.messages.md - notes (6 endpoints): /ai/openapi/tag.notes.md - objects (6 endpoints): /ai/openapi/tag.objects.md - opportunities (6 endpoints): /ai/openapi/tag.opportunities.md - participants (6 endpoints): /ai/openapi/tag.participants.md - payments (6 endpoints): /ai/openapi/tag.payments.md - permissions (3 endpoints): /ai/openapi/tag.permissions.md - pricelists (6 endpoints): /ai/openapi/tag.pricelists.md - pricelists2accounts (6 endpoints): /ai/openapi/tag.pricelists2accounts.md - prices (6 endpoints): /ai/openapi/tag.prices.md - projects (6 endpoints): /ai/openapi/tag.projects.md - records (6 endpoints): /ai/openapi/tag.records.md - relateditems (6 endpoints): /ai/openapi/tag.relateditems.md - resources (3 endpoints): /ai/openapi/tag.resources.md - services (3 endpoints): /ai/openapi/tag.services.md - stocktransactions (6 endpoints): /ai/openapi/tag.stocktransactions.md - storages (6 endpoints): /ai/openapi/tag.storages.md - suppliers (6 endpoints): /ai/openapi/tag.suppliers.md - tasks (6 endpoints): /ai/openapi/tag.tasks.md - tickets (6 endpoints): /ai/openapi/tag.tickets.md - transactions (6 endpoints): /ai/openapi/tag.transactions.md - users (3 endpoints): /ai/openapi/tag.users.md - weblets (3 endpoints): /ai/openapi/tag.weblets.md --- # ZeyOS Standard REST API (v1) ## Tag: accounts Accounts ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /accounts | List accounts | | PUT | /accounts | Create new account | | DELETE | /accounts/{ID} | Delete account | | GET | /accounts/{ID} | Get account | | HEAD | /accounts/{ID} | Check if account exists | | PATCH | /accounts/{ID} | Update existing account | ### POST /accounts - Summary: List accounts - OperationId: listAccounts - Description: List selected data from all accounts that match the specified filter and search criteria in a specific sort order. Requires `accounts` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 400: #/components/responses/400 - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /accounts - Summary: Create new account - OperationId: createAccount - Description: Create a new account and return its persistent data. Requires writable `accounts` permission. Parameters: - (none) Request body: - #/components/requestBodies/accounts Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/accounts - 400: #/components/responses/400 - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 500: #/components/responses/500 ### DELETE /accounts/{ID} - Summary: Delete account - OperationId: deleteAccount - Description: Permanently delete an existing account by **`ID`**. Requires writable `accounts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /accounts/{ID} - Summary: Get account - OperationId: getAccount - Description: Return the data of an existing account by **`ID`**. Requires `accounts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/accounts - 304 — Not Modified - 400: #/components/responses/400 - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /accounts/{ID} - Summary: Check if account exists - OperationId: existsAccount - Description: Check if an account with **`ID`** exists, but do not return its data. Requires `accounts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 400: #/components/responses/400 - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /accounts/{ID} - Summary: Update existing account - OperationId: updateAccount - Description: Update an existing account by **`ID`** and return its persistent data. Requires writable `accounts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/accounts Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/accounts - 400: #/components/responses/400 - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: actionsteps Action Steps ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /actionsteps | List actionsteps | | PUT | /actionsteps | Create new action step | | DELETE | /actionsteps/{ID} | Delete action step | | GET | /actionsteps/{ID} | Get action step | | HEAD | /actionsteps/{ID} | Check if action step exists | | PATCH | /actionsteps/{ID} | Update existing action step | ### POST /actionsteps - Summary: List actionsteps - OperationId: listActionSteps - Description: List selected data from all action steps that match the specified filter and search criteria in a specific sort order. Requires `actionsteps` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /actionsteps - Summary: Create new action step - OperationId: createActionStep - Description: Create a new action step and return its persistent data. Requires writable `actionsteps` permission. Parameters: - (none) Request body: - #/components/requestBodies/actionsteps Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/actionsteps - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /actionsteps/{ID} - Summary: Delete action step - OperationId: deleteActionStep - Description: Permanently delete an existing action step by **`ID`**. Requires writable `actionsteps` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /actionsteps/{ID} - Summary: Get action step - OperationId: getActionStep - Description: Return the data of an existing action step by **`ID`**. Requires `actionsteps` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/actionsteps - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /actionsteps/{ID} - Summary: Check if action step exists - OperationId: existsActionStep - Description: Check if an action step with **`ID`** exists, but do not return its data. Requires `actionsteps` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /actionsteps/{ID} - Summary: Update existing action step - OperationId: updateActionStep - Description: Update an existing action step by **`ID`** and return its persistent data. Requires writable `actionsteps` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/actionsteps Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/actionsteps - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: addresses Addresses ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /addresses | List addresses | | PUT | /addresses | Create new address | | DELETE | /addresses/{ID} | Delete address | | GET | /addresses/{ID} | Get address | | HEAD | /addresses/{ID} | Check if address exists | | PATCH | /addresses/{ID} | Update existing address | ### POST /addresses - Summary: List addresses - OperationId: listAddresses - Description: List selected data from all addresses that match the specified filter and search criteria in a specific sort order. Requires `accounts` permission. Has dependency on `account`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /addresses - Summary: Create new address - OperationId: createAddress - Description: Create a new address and return its persistent data. Requires writable `accounts` permission. Has dependency on `account`. Parameters: - (none) Request body: - #/components/requestBodies/addresses Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/addresses - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /addresses/{ID} - Summary: Delete address - OperationId: deleteAddress - Description: Permanently delete an existing address by **`ID`**. Requires writable `accounts` permission. Has dependency on `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /addresses/{ID} - Summary: Get address - OperationId: getAddress - Description: Return the data of an existing address by **`ID`**. Requires `accounts` permission. Has dependency on `account`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/addresses - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /addresses/{ID} - Summary: Check if address exists - OperationId: existsAddress - Description: Check if an address with **`ID`** exists, but do not return its data. Requires `accounts` permission. Has dependency on `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /addresses/{ID} - Summary: Update existing address - OperationId: updateAddress - Description: Update an existing address by **`ID`** and return its persistent data. Requires writable `accounts` permission. Has dependency on `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/addresses Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/addresses - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: applicationassets Application Assets *(developer read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /applicationassets | List application assets | | GET | /applicationassets/{ID} | Get application asset | | HEAD | /applicationassets/{ID} | Check if application asset exists | ### POST /applicationassets - Summary: List application assets - OperationId: listApplicationAssets - Description: List selected data from all application assets that match the specified filter and search criteria in a specific sort order. Requires `dev` permission. Has dependency on `application`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /applicationassets/{ID} - Summary: Get application asset - OperationId: getApplicationAsset - Description: Return the data of an existing application asset by **`ID`**. Requires `dev` permission. Has dependency on `application`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/applicationassets - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /applicationassets/{ID} - Summary: Check if application asset exists - OperationId: existsApplicationAsset - Description: Check if an application asset with **`ID`** exists, but do not return its data. Requires `dev` permission. Has dependency on `application`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: applications Applications *(developer read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /applications | List applications | | GET | /applications/{ID} | Get application | | HEAD | /applications/{ID} | Check if application exists | ### POST /applications - Summary: List applications - OperationId: listApplications - Description: List selected data from all applications that match the specified filter and search criteria in a specific sort order. Requires `dev` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /applications/{ID} - Summary: Get application - OperationId: getApplication - Description: Return the data of an existing application by **`ID`**. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/applications - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /applications/{ID} - Summary: Check if application exists - OperationId: existsApplication - Description: Check if an application with **`ID`** exists, but do not return its data. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: appointments Appointments ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /appointments | List appointments | | PUT | /appointments | Create new appointment | | DELETE | /appointments/{ID} | Delete appointment | | GET | /appointments/{ID} | Get appointment | | HEAD | /appointments/{ID} | Check if appointment exists | | PATCH | /appointments/{ID} | Update existing appointment | ### POST /appointments - Summary: List appointments - OperationId: listAppointments - Description: List selected data from all appointments that match the specified filter and search criteria in a specific sort order. Requires `calendar` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /appointments - Summary: Create new appointment - OperationId: createAppointment - Description: Create a new appointment and return its persistent data. Requires writable `calendar` permission. Parameters: - (none) Request body: - #/components/requestBodies/appointments Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/appointments - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /appointments/{ID} - Summary: Delete appointment - OperationId: deleteAppointment - Description: Permanently delete an existing appointment by **`ID`**. Requires writable `calendar` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /appointments/{ID} - Summary: Get appointment - OperationId: getAppointment - Description: Return the data of an existing appointment by **`ID`**. Requires `calendar` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/appointments - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /appointments/{ID} - Summary: Check if appointment exists - OperationId: existsAppointment - Description: Check if an appointment with **`ID`** exists, but do not return its data. Requires `calendar` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /appointments/{ID} - Summary: Update existing appointment - OperationId: updateAppointment - Description: Update an existing appointment by **`ID`** and return its persistent data. Requires writable `calendar` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/appointments Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/appointments - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: associations Associations ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /associations | List associations | | PUT | /associations | Create new association | | DELETE | /associations/{ID} | Delete association | | GET | /associations/{ID} | Get association | | HEAD | /associations/{ID} | Check if association exists | | PATCH | /associations/{ID} | Update existing association | ### POST /associations - Summary: List associations - OperationId: listAssociations - Description: List selected data from all associations that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /associations - Summary: Create new association - OperationId: createAssociation - Description: Create a new association and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/associations Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/associations - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /associations/{ID} - Summary: Delete association - OperationId: deleteAssociation - Description: Permanently delete an existing association by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /associations/{ID} - Summary: Get association - OperationId: getAssociation - Description: Return the data of an existing association by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/associations - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /associations/{ID} - Summary: Check if association exists - OperationId: existsAssociation - Description: Check if an association with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /associations/{ID} - Summary: Update existing association - OperationId: updateAssociation - Description: Update an existing association by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/associations Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/associations - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: binfiles Bin Files *(read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /binfiles | List bin files | ### POST /binfiles - Summary: List bin files - OperationId: listBinFiles - Description: List selected data from all bin files that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: campaigns Campaigns ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /campaigns | List campaigns | | PUT | /campaigns | Create new campaign | | DELETE | /campaigns/{ID} | Delete campaign | | GET | /campaigns/{ID} | Get campaign | | HEAD | /campaigns/{ID} | Check if campaign exists | | PATCH | /campaigns/{ID} | Update existing campaign | ### POST /campaigns - Summary: List campaigns - OperationId: listCampaigns - Description: List selected data from all campaigns that match the specified filter and search criteria in a specific sort order. Requires `campaigns` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /campaigns - Summary: Create new campaign - OperationId: createCampaign - Description: Create a new campaign and return its persistent data. Requires writable `campaigns` permission. Parameters: - (none) Request body: - #/components/requestBodies/campaigns Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/campaigns - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /campaigns/{ID} - Summary: Delete campaign - OperationId: deleteCampaign - Description: Permanently delete an existing campaign by **`ID`**. Requires writable `campaigns` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /campaigns/{ID} - Summary: Get campaign - OperationId: getCampaign - Description: Return the data of an existing campaign by **`ID`**. Requires `campaigns` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/campaigns - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /campaigns/{ID} - Summary: Check if campaign exists - OperationId: existsCampaign - Description: Check if a campaign with **`ID`** exists, but do not return its data. Requires `campaigns` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /campaigns/{ID} - Summary: Update existing campaign - OperationId: updateCampaign - Description: Update an existing campaign by **`ID`** and return its persistent data. Requires writable `campaigns` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/campaigns Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/campaigns - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: categories Categories ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /categories | List categories | | PUT | /categories | Create new category | | DELETE | /categories/{ID} | Delete category | | GET | /categories/{ID} | Get category | | HEAD | /categories/{ID} | Check if category exists | | PATCH | /categories/{ID} | Update existing category | ### POST /categories - Summary: List categories - OperationId: listCategorys - Description: List selected data from all categories that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /categories - Summary: Create new category - OperationId: createCategory - Description: Create a new category and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/categories Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/categories - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /categories/{ID} - Summary: Delete category - OperationId: deleteCategory - Description: Permanently delete an existing category by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /categories/{ID} - Summary: Get category - OperationId: getCategory - Description: Return the data of an existing category by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/categories - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /categories/{ID} - Summary: Check if category exists - OperationId: existsCategory - Description: Check if a category with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /categories/{ID} - Summary: Update existing category - OperationId: updateCategory - Description: Update an existing category by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/categories Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/categories - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: channels Channels ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /channels | List channels | | PUT | /channels | Create new channel | | DELETE | /channels/{ID} | Delete channel | | GET | /channels/{ID} | Get channel | | HEAD | /channels/{ID} | Check if channel exists | | PATCH | /channels/{ID} | Update existing channel | ### POST /channels - Summary: List channels - OperationId: listChannels - Description: List selected data from all channels that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /channels - Summary: Create new channel - OperationId: createChannel - Description: Create a new channel and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/channels Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/channels - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /channels/{ID} - Summary: Delete channel - OperationId: deleteChannel - Description: Permanently delete an existing channel by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /channels/{ID} - Summary: Get channel - OperationId: getChannel - Description: Return the data of an existing channel by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/channels - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /channels/{ID} - Summary: Check if channel exists - OperationId: existsChannel - Description: Check if a channel with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /channels/{ID} - Summary: Update existing channel - OperationId: updateChannel - Description: Update an existing channel by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/channels Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/channels - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: comments Comments ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /comments | List comments | | PUT | /comments | Create new comment | | DELETE | /comments/{ID} | Delete comment | | GET | /comments/{ID} | Get comment | | HEAD | /comments/{ID} | Check if comment exists | | PATCH | /comments/{ID} | Update existing comment | ### POST /comments - Summary: List comments - OperationId: listComments - Description: List selected data from all comments that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `record`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /comments - Summary: Create new comment - OperationId: createComment - Description: Create a new comment and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`. Parameters: - (none) Request body: - #/components/requestBodies/comments Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/comments - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /comments/{ID} - Summary: Delete comment - OperationId: deleteComment - Description: Permanently delete an existing comment by **`ID`**. Requires the authenticated user to be the `creator`. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /comments/{ID} - Summary: Get comment - OperationId: getComment - Description: Return the data of an existing comment by **`ID`**. Requires no specific permission. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/comments - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /comments/{ID} - Summary: Check if comment exists - OperationId: existsComment - Description: Check if a comment with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /comments/{ID} - Summary: Update existing comment - OperationId: updateComment - Description: Update an existing comment by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/comments Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/comments - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: components Components ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /components | List components | | PUT | /components | Create new component | | DELETE | /components/{ID} | Delete component | | GET | /components/{ID} | Get component | | HEAD | /components/{ID} | Check if component exists | | PATCH | /components/{ID} | Update existing component | ### POST /components - Summary: List components - OperationId: listComponents - Description: List selected data from all components that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Has dependency on `item`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /components - Summary: Create new component - OperationId: createComponent - Description: Create a new component and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - (none) Request body: - #/components/requestBodies/components Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/components - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /components/{ID} - Summary: Delete component - OperationId: deleteComponent - Description: Permanently delete an existing component by **`ID`**. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /components/{ID} - Summary: Get component - OperationId: getComponent - Description: Return the data of an existing component by **`ID`**. Requires `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/components - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /components/{ID} - Summary: Check if component exists - OperationId: existsComponent - Description: Check if a component with **`ID`** exists, but do not return its data. Requires `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /components/{ID} - Summary: Update existing component - OperationId: updateComponent - Description: Update an existing component by **`ID`** and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/components Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/components - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: contacts Contacts ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /contacts | List contacts | | PUT | /contacts | Create new contact | | DELETE | /contacts/{ID} | Delete contact | | GET | /contacts/{ID} | Get contact | | HEAD | /contacts/{ID} | Check if contact exists | | PATCH | /contacts/{ID} | Update existing contact | ### POST /contacts - Summary: List contacts - OperationId: listContacts - Description: List selected data from all contacts that match the specified filter and search criteria in a specific sort order. Requires `contacts` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /contacts - Summary: Create new contact - OperationId: createContact - Description: Create a new contact and return its persistent data. Requires writable `contacts` permission. Parameters: - (none) Request body: - #/components/requestBodies/contacts Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/contacts - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /contacts/{ID} - Summary: Delete contact - OperationId: deleteContact - Description: Permanently delete an existing contact by **`ID`**. Requires writable `contacts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /contacts/{ID} - Summary: Get contact - OperationId: getContact - Description: Return the data of an existing contact by **`ID`**. Requires `contacts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/contacts - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /contacts/{ID} - Summary: Check if contact exists - OperationId: existsContact - Description: Check if a contact with **`ID`** exists, but do not return its data. Requires `contacts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /contacts/{ID} - Summary: Update existing contact - OperationId: updateContact - Description: Update an existing contact by **`ID`** and return its persistent data. Requires writable `contacts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/contacts Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/contacts - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: contacts2contacts Contacts-to-contacts ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /contacts2contacts | List contacts-to-contacts | | PUT | /contacts2contacts | Create new contact-to-contact | | DELETE | /contacts2contacts/{ID} | Delete contact-to-contact | | GET | /contacts2contacts/{ID} | Get contact-to-contact | | HEAD | /contacts2contacts/{ID} | Check if contact-to-contact exists | | PATCH | /contacts2contacts/{ID} | Update existing contact-to-contact | ### POST /contacts2contacts - Summary: List contacts-to-contacts - OperationId: listContactsToContacts - Description: List selected data from all contacts-to-contacts that match the specified filter and search criteria in a specific sort order. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /contacts2contacts - Summary: Create new contact-to-contact - OperationId: createContactToContact - Description: Create a new contact-to-contact and return its persistent data. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`. Parameters: - (none) Request body: - #/components/requestBodies/contacts2contacts Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/contacts2contacts - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /contacts2contacts/{ID} - Summary: Delete contact-to-contact - OperationId: deleteContactToContact - Description: Permanently delete an existing contact-to-contact by **`ID`**. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /contacts2contacts/{ID} - Summary: Get contact-to-contact - OperationId: getContactToContact - Description: Return the data of an existing contact-to-contact by **`ID`**. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/contacts2contacts - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /contacts2contacts/{ID} - Summary: Check if contact-to-contact exists - OperationId: existsContactToContact - Description: Check if a contact-to-contact with **`ID`** exists, but do not return its data. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /contacts2contacts/{ID} - Summary: Update existing contact-to-contact - OperationId: updateContactToContact - Description: Update an existing contact-to-contact by **`ID`** and return its persistent data. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/contacts2contacts Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/contacts2contacts - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: contracts Contracts ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /contracts | List contracts | | PUT | /contracts | Create new contract | | DELETE | /contracts/{ID} | Delete contract | | GET | /contracts/{ID} | Get contract | | HEAD | /contracts/{ID} | Check if contract exists | | PATCH | /contracts/{ID} | Update existing contract | ### POST /contracts - Summary: List contracts - OperationId: listContracts - Description: List selected data from all contracts that match the specified filter and search criteria in a specific sort order. Requires `contracts` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /contracts - Summary: Create new contract - OperationId: createContract - Description: Create a new contract and return its persistent data. Requires writable `contracts` permission. Parameters: - (none) Request body: - #/components/requestBodies/contracts Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/contracts - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /contracts/{ID} - Summary: Delete contract - OperationId: deleteContract - Description: Permanently delete an existing contract by **`ID`**. Requires writable `contracts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /contracts/{ID} - Summary: Get contract - OperationId: getContract - Description: Return the data of an existing contract by **`ID`**. Requires `contracts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/contracts - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /contracts/{ID} - Summary: Check if contract exists - OperationId: existsContract - Description: Check if a contract with **`ID`** exists, but do not return its data. Requires `contracts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /contracts/{ID} - Summary: Update existing contract - OperationId: updateContract - Description: Update an existing contract by **`ID`** and return its persistent data. Requires writable `contracts` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/contracts Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/contracts - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: couponcodes Coupon Codes ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /couponcodes | List coupon codes | | PUT | /couponcodes | Create new coupon code | | DELETE | /couponcodes/{ID} | Delete coupon code | | GET | /couponcodes/{ID} | Get coupon code | | HEAD | /couponcodes/{ID} | Check if coupon code exists | | PATCH | /couponcodes/{ID} | Update existing coupon code | ### POST /couponcodes - Summary: List coupon codes - OperationId: listCouponCodes - Description: List selected data from all coupon codes that match the specified filter and search criteria in a specific sort order. Requires `pricelists` permission. Has dependency on `coupon`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /couponcodes - Summary: Create new coupon code - OperationId: createCouponCode - Description: Create a new coupon code and return its persistent data. Requires writable `pricelists` permission. Has dependency on `coupon`. Parameters: - (none) Request body: - #/components/requestBodies/couponcodes Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/couponcodes - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /couponcodes/{ID} - Summary: Delete coupon code - OperationId: deleteCouponCode - Description: Permanently delete an existing coupon code by **`ID`**. Requires writable `pricelists` permission. Has dependency on `coupon`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /couponcodes/{ID} - Summary: Get coupon code - OperationId: getCouponCode - Description: Return the data of an existing coupon code by **`ID`**. Requires `pricelists` permission. Has dependency on `coupon`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/couponcodes - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /couponcodes/{ID} - Summary: Check if coupon code exists - OperationId: existsCouponCode - Description: Check if a coupon code with **`ID`** exists, but do not return its data. Requires `pricelists` permission. Has dependency on `coupon`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /couponcodes/{ID} - Summary: Update existing coupon code - OperationId: updateCouponCode - Description: Update an existing coupon code by **`ID`** and return its persistent data. Requires writable `pricelists` permission. Has dependency on `coupon`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/couponcodes Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/couponcodes - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: coupons Coupons ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /coupons | List coupons | | PUT | /coupons | Create new coupon | | DELETE | /coupons/{ID} | Delete coupon | | GET | /coupons/{ID} | Get coupon | | HEAD | /coupons/{ID} | Check if coupon exists | | PATCH | /coupons/{ID} | Update existing coupon | ### POST /coupons - Summary: List coupons - OperationId: listCoupons - Description: List selected data from all coupons that match the specified filter and search criteria in a specific sort order. Requires `pricelists` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /coupons - Summary: Create new coupon - OperationId: createCoupon - Description: Create a new coupon and return its persistent data. Requires writable `pricelists` permission. Parameters: - (none) Request body: - #/components/requestBodies/coupons Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/coupons - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /coupons/{ID} - Summary: Delete coupon - OperationId: deleteCoupon - Description: Permanently delete an existing coupon by **`ID`**. Requires writable `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /coupons/{ID} - Summary: Get coupon - OperationId: getCoupon - Description: Return the data of an existing coupon by **`ID`**. Requires `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/coupons - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /coupons/{ID} - Summary: Check if coupon exists - OperationId: existsCoupon - Description: Check if a coupon with **`ID`** exists, but do not return its data. Requires `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /coupons/{ID} - Summary: Update existing coupon - OperationId: updateCoupon - Description: Update an existing coupon by **`ID`** and return its persistent data. Requires writable `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/coupons Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/coupons - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: customfields Custom Fields *(read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /customfields | List custom fields | | GET | /customfields/{ID} | Get custom field | | HEAD | /customfields/{ID} | Check if custom field exists | ### POST /customfields - Summary: List custom fields - OperationId: listCustomFields - Description: List selected data from all custom fields that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /customfields/{ID} - Summary: Get custom field - OperationId: getCustomField - Description: Return the data of an existing custom field by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/customfields - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /customfields/{ID} - Summary: Check if custom field exists - OperationId: existsCustomField - Description: Check if a custom field with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: davservers DAV Servers ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /davservers | List DAV servers | | PUT | /davservers | Create new DAV server | | DELETE | /davservers/{ID} | Delete DAV server | | GET | /davservers/{ID} | Get DAV server | | HEAD | /davservers/{ID} | Check if DAV server exists | | PATCH | /davservers/{ID} | Update existing DAV server | ### POST /davservers - Summary: List DAV servers - OperationId: listDAVServers - Description: List selected data from all DAV servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /davservers - Summary: Create new DAV server - OperationId: createDAVServer - Description: Create a new DAV server and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/davservers Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/davservers - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /davservers/{ID} - Summary: Delete DAV server - OperationId: deleteDAVServer - Description: Permanently delete an existing DAV server by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /davservers/{ID} - Summary: Get DAV server - OperationId: getDAVServer - Description: Return the data of an existing DAV server by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/davservers - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /davservers/{ID} - Summary: Check if DAV server exists - OperationId: existsDAVServer - Description: Check if a DAV server with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /davservers/{ID} - Summary: Update existing DAV server - OperationId: updateDAVServer - Description: Update an existing DAV server by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/davservers Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/davservers - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: devices Devices ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /devices | List devices | | PUT | /devices | Create new device | | DELETE | /devices/{ID} | Delete device | | GET | /devices/{ID} | Get device | | HEAD | /devices/{ID} | Check if device exists | | PATCH | /devices/{ID} | Update existing device | ### POST /devices - Summary: List devices - OperationId: listDevices - Description: List selected data from all devices that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /devices - Summary: Create new device - OperationId: createDevice - Description: Create a new device and return its persistent data. Requires `inventory` permission. Parameters: - (none) Request body: - #/components/requestBodies/devices Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/devices - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /devices/{ID} - Summary: Delete device - OperationId: deleteDevice - Description: Permanently delete an existing device by **`ID`**. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /devices/{ID} - Summary: Get device - OperationId: getDevice - Description: Return the data of an existing device by **`ID`**. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/devices - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /devices/{ID} - Summary: Check if device exists - OperationId: existsDevice - Description: Check if a device with **`ID`** exists, but do not return its data. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /devices/{ID} - Summary: Update existing device - OperationId: updateDevice - Description: Update an existing device by **`ID`** and return its persistent data. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/devices Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/devices - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: documents Documents ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /documents | List documents | | PUT | /documents | Create new document | | DELETE | /documents/{ID} | Delete document | | GET | /documents/{ID} | Get document | | HEAD | /documents/{ID} | Check if document exists | | PATCH | /documents/{ID} | Update existing document | ### POST /documents - Summary: List documents - OperationId: listDocuments - Description: List selected data from all documents that match the specified filter and search criteria in a specific sort order. Requires `documents` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /documents - Summary: Create new document - OperationId: createDocument - Description: Create a new document and return its persistent data. Requires `documents` permission. Parameters: - (none) Request body: - #/components/requestBodies/documents Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/documents - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /documents/{ID} - Summary: Delete document - OperationId: deleteDocument - Description: Permanently delete an existing document by **`ID`**. Requires `documents` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /documents/{ID} - Summary: Get document - OperationId: getDocument - Description: Return the data of an existing document by **`ID`**. Requires `documents` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/documents - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /documents/{ID} - Summary: Check if document exists - OperationId: existsDocument - Description: Check if a document with **`ID`** exists, but do not return its data. Requires `documents` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /documents/{ID} - Summary: Update existing document - OperationId: updateDocument - Description: Update an existing document by **`ID`** and return its persistent data. Requires `documents` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/documents Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/documents - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: dunning Dunning Notices ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /dunning | List dunning notices | | PUT | /dunning | Create new dunning notice | | DELETE | /dunning/{ID} | Delete dunning notice | | GET | /dunning/{ID} | Get dunning notice | | HEAD | /dunning/{ID} | Check if dunning notice exists | | PATCH | /dunning/{ID} | Update existing dunning notice | ### POST /dunning - Summary: List dunning notices - OperationId: listDunningNotices - Description: List selected data from all dunning notices that match the specified filter and search criteria in a specific sort order. Requires `collection` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /dunning - Summary: Create new dunning notice - OperationId: createDunningNotice - Description: Create a new dunning notice and return its persistent data. Requires writable `collection` permission. Parameters: - (none) Request body: - #/components/requestBodies/dunning Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/dunning - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /dunning/{ID} - Summary: Delete dunning notice - OperationId: deleteDunningNotice - Description: Permanently delete an existing dunning notice by **`ID`**. Requires writable `collection` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /dunning/{ID} - Summary: Get dunning notice - OperationId: getDunningNotice - Description: Return the data of an existing dunning notice by **`ID`**. Requires `collection` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/dunning - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /dunning/{ID} - Summary: Check if dunning notice exists - OperationId: existsDunningNotice - Description: Check if a dunning notice with **`ID`** exists, but do not return its data. Requires `collection` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /dunning/{ID} - Summary: Update existing dunning notice - OperationId: updateDunningNotice - Description: Update an existing dunning notice by **`ID`** and return its persistent data. Requires writable `collection` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/dunning Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/dunning - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: dunning2transactions Dunning-to-transactions ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /dunning2transactions | List dunning-to-transactions | | PUT | /dunning2transactions | Create new dunning-to-transaction | | DELETE | /dunning2transactions/{ID} | Delete dunning-to-transaction | | GET | /dunning2transactions/{ID} | Get dunning-to-transaction | | HEAD | /dunning2transactions/{ID} | Check if dunning-to-transaction exists | | PATCH | /dunning2transactions/{ID} | Update existing dunning-to-transaction | ### POST /dunning2transactions - Summary: List dunning-to-transactions - OperationId: listDunningToTransactions - Description: List selected data from all dunning-to-transactions that match the specified filter and search criteria in a specific sort order. Requires `collection` permission. Has dependencies on `dunning` and `transaction`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /dunning2transactions - Summary: Create new dunning-to-transaction - OperationId: createDunningToTransaction - Description: Create a new dunning-to-transaction and return its persistent data. Requires writable `collection` permission. Has dependencies on `dunning` and `transaction`. Parameters: - (none) Request body: - #/components/requestBodies/dunning2transactions Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/dunning2transactions - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /dunning2transactions/{ID} - Summary: Delete dunning-to-transaction - OperationId: deleteDunningToTransaction - Description: Permanently delete an existing dunning-to-transaction by **`ID`**. Requires writable `collection` permission. Has dependencies on `dunning` and `transaction`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /dunning2transactions/{ID} - Summary: Get dunning-to-transaction - OperationId: getDunningToTransaction - Description: Return the data of an existing dunning-to-transaction by **`ID`**. Requires `collection` permission. Has dependencies on `dunning` and `transaction`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/dunning2transactions - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /dunning2transactions/{ID} - Summary: Check if dunning-to-transaction exists - OperationId: existsDunningToTransaction - Description: Check if a dunning-to-transaction with **`ID`** exists, but do not return its data. Requires `collection` permission. Has dependencies on `dunning` and `transaction`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /dunning2transactions/{ID} - Summary: Update existing dunning-to-transaction - OperationId: updateDunningToTransaction - Description: Update an existing dunning-to-transaction by **`ID`** and return its persistent data. Requires writable `collection` permission. Has dependencies on `dunning` and `transaction`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/dunning2transactions Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/dunning2transactions - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: entities2channels Entities-to-channels ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /entities2channels | List entities-to-channels | | PUT | /entities2channels | Create new entity-to-channel | | DELETE | /entities2channels/{ID} | Delete entity-to-channel | | GET | /entities2channels/{ID} | Get entity-to-channel | | HEAD | /entities2channels/{ID} | Check if entity-to-channel exists | | PATCH | /entities2channels/{ID} | Update existing entity-to-channel | ### POST /entities2channels - Summary: List entities-to-channels - OperationId: listEntitiesToChannels - Description: List selected data from all entities-to-channels that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `channel`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /entities2channels - Summary: Create new entity-to-channel - OperationId: createEntityToChannel - Description: Create a new entity-to-channel and return its persistent data. Requires no specific permission. Has dependency on `channel`. Parameters: - (none) Request body: - #/components/requestBodies/entities2channels Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/entities2channels - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /entities2channels/{ID} - Summary: Delete entity-to-channel - OperationId: deleteEntityToChannel - Description: Permanently delete an existing entity-to-channel by **`ID`**. Requires no specific permission. Has dependency on `channel`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /entities2channels/{ID} - Summary: Get entity-to-channel - OperationId: getEntityToChannel - Description: Return the data of an existing entity-to-channel by **`ID`**. Requires no specific permission. Has dependency on `channel`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/entities2channels - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /entities2channels/{ID} - Summary: Check if entity-to-channel exists - OperationId: existsEntityToChannel - Description: Check if an entity-to-channel with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `channel`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /entities2channels/{ID} - Summary: Update existing entity-to-channel - OperationId: updateEntityToChannel - Description: Update an existing entity-to-channel by **`ID`** and return its persistent data. Requires no specific permission. Has dependency on `channel`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/entities2channels Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/entities2channels - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: events Events ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /events | List events | | PUT | /events | Create new event | | DELETE | /events/{ID} | Delete event | | GET | /events/{ID} | Get event | | HEAD | /events/{ID} | Check if event exists | | PATCH | /events/{ID} | Update existing event | ### POST /events - Summary: List events - OperationId: listEvents - Description: List selected data from all events that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /events - Summary: Create new event - OperationId: createEvent - Description: Create a new event and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/events Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/events - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /events/{ID} - Summary: Delete event - OperationId: deleteEvent - Description: Permanently delete an existing event by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /events/{ID} - Summary: Get event - OperationId: getEvent - Description: Return the data of an existing event by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/events - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /events/{ID} - Summary: Check if event exists - OperationId: existsEvent - Description: Check if an event with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /events/{ID} - Summary: Update existing event - OperationId: updateEvent - Description: Update an existing event by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/events Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/events - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: feedservers Feed Servers ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /feedservers | List feed servers | | PUT | /feedservers | Create new feed server | | DELETE | /feedservers/{ID} | Delete feed server | | GET | /feedservers/{ID} | Get feed server | | HEAD | /feedservers/{ID} | Check if feed server exists | | PATCH | /feedservers/{ID} | Update existing feed server | ### POST /feedservers - Summary: List feed servers - OperationId: listFeedServers - Description: List selected data from all feed servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /feedservers - Summary: Create new feed server - OperationId: createFeedServer - Description: Create a new feed server and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/feedservers Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/feedservers - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /feedservers/{ID} - Summary: Delete feed server - OperationId: deleteFeedServer - Description: Permanently delete an existing feed server by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /feedservers/{ID} - Summary: Get feed server - OperationId: getFeedServer - Description: Return the data of an existing feed server by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/feedservers - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /feedservers/{ID} - Summary: Check if feed server exists - OperationId: existsFeedServer - Description: Check if a feed server with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /feedservers/{ID} - Summary: Update existing feed server - OperationId: updateFeedServer - Description: Update an existing feed server by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/feedservers Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/feedservers - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: files Files ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /files | List files | | PUT | /files | Create new file | | DELETE | /files/{ID} | Delete file | | GET | /files/{ID} | Get file | | HEAD | /files/{ID} | Check if file exists | | PATCH | /files/{ID} | Update existing file | ### POST /files - Summary: List files - OperationId: listFiles - Description: List selected data from all files that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `record` or `comment`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /files - Summary: Create new file - OperationId: createFile - Description: Create a new file and return its persistent data. Requires no specific permission. Has dependency on `record` or `comment`. Parameters: - (none) Request body: - #/components/requestBodies/files Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/files - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /files/{ID} - Summary: Delete file - OperationId: deleteFile - Description: Permanently delete an existing file by **`ID`**. Requires no specific permission. Has dependency on `record` or `comment`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /files/{ID} - Summary: Get file - OperationId: getFile - Description: Return the data of an existing file by **`ID`**. Requires no specific permission. Has dependency on `record` or `comment`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/files - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /files/{ID} - Summary: Check if file exists - OperationId: existsFile - Description: Check if a file with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `record` or `comment`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /files/{ID} - Summary: Update existing file - OperationId: updateFile - Description: Update an existing file by **`ID`** and return its persistent data. Requires no specific permission. Has dependency on `record` or `comment`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/files Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/files - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: follows Follows ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /follows | List follows | | PUT | /follows | Create new follow | | DELETE | /follows/{ID} | Delete follow | | GET | /follows/{ID} | Get follow | | HEAD | /follows/{ID} | Check if follow exists | | PATCH | /follows/{ID} | Update existing follow | ### POST /follows - Summary: List follows - OperationId: listFollows - Description: List selected data from all follows that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /follows - Summary: Create new follow - OperationId: createFollow - Description: Create a new follow and return its persistent data. Requires the authenticated user to be the `creator`. Parameters: - (none) Request body: - #/components/requestBodies/follows Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/follows - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /follows/{ID} - Summary: Delete follow - OperationId: deleteFollow - Description: Permanently delete an existing follow by **`ID`**. Requires the authenticated user to be the `creator`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /follows/{ID} - Summary: Get follow - OperationId: getFollow - Description: Return the data of an existing follow by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/follows - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /follows/{ID} - Summary: Check if follow exists - OperationId: existsFollow - Description: Check if a follow with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /follows/{ID} - Summary: Update existing follow - OperationId: updateFollow - Description: Update an existing follow by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/follows Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/follows - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: forks Forks *(restricted read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /forks | List forks | | GET | /forks/{ID} | Get fork | | HEAD | /forks/{ID} | Check if fork exists | ### POST /forks - Summary: List forks - OperationId: listForks - Description: List selected data from all forks that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /forks/{ID} - Summary: Get fork - OperationId: getFork - Description: Return the data of an existing fork by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/forks - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /forks/{ID} - Summary: Check if fork exists - OperationId: existsFork - Description: Check if a fork with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: general General ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | GET | /config | Get system configuration | | GET | /settings | Get application settings | ### GET /config - Summary: Get system configuration - OperationId: getConfig - Description: Return the user-visible system configuration. Parameters: - (none) Request body: - (none) Responses: - 200 — OK - application/json — object - 401: #/components/responses/401 - 500: #/components/responses/500 ### GET /settings - Summary: Get application settings - OperationId: getSettings - Description: Return the settings of the application that was used for authentication. Parameters: - (none) Request body: - (none) Responses: - 200 — OK - application/json — object - 401: #/components/responses/401 - 403 — Forbidden - text/plain — string - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: groups Groups *(restricted read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /groups | List groups | | GET | /groups/{ID} | Get group | | HEAD | /groups/{ID} | Check if group exists | ### POST /groups - Summary: List groups - OperationId: listGroups - Description: List selected data from all groups that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /groups/{ID} - Summary: Get group - OperationId: getGroup - Description: Return the data of an existing group by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/groups - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /groups/{ID} - Summary: Check if group exists - OperationId: existsGroup - Description: Check if a group with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: groups2users Groups-to-users *(admin read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /groups2users | List groups-to-users | | GET | /groups2users/{ID} | Get group-to-user | | HEAD | /groups2users/{ID} | Check if group-to-user exists | ### POST /groups2users - Summary: List groups-to-users - OperationId: listGroupsToUsers - Description: List selected data from all groups-to-users that match the specified filter and search criteria in a specific sort order. Requires `admin` permission. Has dependency on `group` or `user`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /groups2users/{ID} - Summary: Get group-to-user - OperationId: getGroupToUser - Description: Return the data of an existing group-to-user by **`ID`**. Requires `admin` permission. Has dependency on `group` or `user`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/groups2users - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /groups2users/{ID} - Summary: Check if group-to-user exists - OperationId: existsGroupToUser - Description: Check if a group-to-user with **`ID`** exists, but do not return its data. Requires `admin` permission. Has dependency on `group` or `user`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: invitations Invitations ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /invitations | List invitations | | PUT | /invitations | Create new invitation | | DELETE | /invitations/{ID} | Delete invitation | | GET | /invitations/{ID} | Get invitation | | HEAD | /invitations/{ID} | Check if invitation exists | | PATCH | /invitations/{ID} | Update existing invitation | ### POST /invitations - Summary: List invitations - OperationId: listInvitations - Description: List selected data from all invitations that match the specified filter and search criteria in a specific sort order. Requires `calendar` permission. Has dependency on `appointment`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /invitations - Summary: Create new invitation - OperationId: createInvitation - Description: Create a new invitation and return its persistent data. Requires writable `calendar` permission. Has dependency on `appointment`. Parameters: - (none) Request body: - #/components/requestBodies/invitations Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/invitations - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /invitations/{ID} - Summary: Delete invitation - OperationId: deleteInvitation - Description: Permanently delete an existing invitation by **`ID`**. Requires writable `calendar` permission. Has dependency on `appointment`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /invitations/{ID} - Summary: Get invitation - OperationId: getInvitation - Description: Return the data of an existing invitation by **`ID`**. Requires `calendar` permission. Has dependency on `appointment`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/invitations - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /invitations/{ID} - Summary: Check if invitation exists - OperationId: existsInvitation - Description: Check if an invitation with **`ID`** exists, but do not return its data. Requires `calendar` permission. Has dependency on `appointment`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /invitations/{ID} - Summary: Update existing invitation - OperationId: updateInvitation - Description: Update an existing invitation by **`ID`** and return its persistent data. Requires writable `calendar` permission. Has dependency on `appointment`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/invitations Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/invitations - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: items Items ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /items | List items | | PUT | /items | Create new item | | DELETE | /items/{ID} | Delete item | | GET | /items/{ID} | Get item | | HEAD | /items/{ID} | Check if item exists | | PATCH | /items/{ID} | Update existing item | ### POST /items - Summary: List items - OperationId: listItems - Description: List selected data from all items that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /items - Summary: Create new item - OperationId: createItem - Description: Create a new item and return its persistent data. Requires writable `inventory` permission. Parameters: - (none) Request body: - #/components/requestBodies/items Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/items - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /items/{ID} - Summary: Delete item - OperationId: deleteItem - Description: Permanently delete an existing item by **`ID`**. Requires writable `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /items/{ID} - Summary: Get item - OperationId: getItem - Description: Return the data of an existing item by **`ID`**. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/items - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /items/{ID} - Summary: Check if item exists - OperationId: existsItem - Description: Check if an item with **`ID`** exists, but do not return its data. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /items/{ID} - Summary: Update existing item - OperationId: updateItem - Description: Update an existing item by **`ID`** and return its persistent data. Requires writable `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/items Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/items - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: ledgers Ledgers ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /ledgers | List ledgers | | PUT | /ledgers | Create new ledger | | DELETE | /ledgers/{ID} | Delete ledger | | GET | /ledgers/{ID} | Get ledger | | HEAD | /ledgers/{ID} | Check if ledger exists | | PATCH | /ledgers/{ID} | Update existing ledger | ### POST /ledgers - Summary: List ledgers - OperationId: listLedgers - Description: List selected data from all ledgers that match the specified filter and search criteria in a specific sort order. Requires `payments` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /ledgers - Summary: Create new ledger - OperationId: createLedger - Description: Create a new ledger and return its persistent data. Requires writable `payments` permission. Parameters: - (none) Request body: - #/components/requestBodies/ledgers Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/ledgers - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /ledgers/{ID} - Summary: Delete ledger - OperationId: deleteLedger - Description: Permanently delete an existing ledger by **`ID`**. Requires writable `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /ledgers/{ID} - Summary: Get ledger - OperationId: getLedger - Description: Return the data of an existing ledger by **`ID`**. Requires `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/ledgers - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /ledgers/{ID} - Summary: Check if ledger exists - OperationId: existsLedger - Description: Check if a ledger with **`ID`** exists, but do not return its data. Requires `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /ledgers/{ID} - Summary: Update existing ledger - OperationId: updateLedger - Description: Update an existing ledger by **`ID`** and return its persistent data. Requires writable `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/ledgers Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/ledgers - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: likes Likes ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /likes | List likes | | PUT | /likes | Create new like | | DELETE | /likes/{ID} | Delete like | | GET | /likes/{ID} | Get like | | HEAD | /likes/{ID} | Check if like exists | | PATCH | /likes/{ID} | Update existing like | ### POST /likes - Summary: List likes - OperationId: listLikes - Description: List selected data from all likes that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on `record`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /likes - Summary: Create new like - OperationId: createLike - Description: Create a new like and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`. Parameters: - (none) Request body: - #/components/requestBodies/likes Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/likes - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /likes/{ID} - Summary: Delete like - OperationId: deleteLike - Description: Permanently delete an existing like by **`ID`**. Requires the authenticated user to be the `creator`. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /likes/{ID} - Summary: Get like - OperationId: getLike - Description: Return the data of an existing like by **`ID`**. Requires no specific permission. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/likes - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /likes/{ID} - Summary: Check if like exists - OperationId: existsLike - Description: Check if a like with **`ID`** exists, but do not return its data. Requires no specific permission. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /likes/{ID} - Summary: Update existing like - OperationId: updateLike - Description: Update an existing like by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`. Has dependency on `record`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/likes Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/likes - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: links Links ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /links | List links | | PUT | /links | Create new link | | DELETE | /links/{ID} | Delete link | | GET | /links/{ID} | Get link | | HEAD | /links/{ID} | Check if link exists | | PATCH | /links/{ID} | Update existing link | ### POST /links - Summary: List links - OperationId: listLinks - Description: List selected data from all links that match the specified filter and search criteria in a specific sort order. Requires `links` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /links - Summary: Create new link - OperationId: createLink - Description: Create a new link and return its persistent data. Requires writable `links` permission. Parameters: - (none) Request body: - #/components/requestBodies/links Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/links - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /links/{ID} - Summary: Delete link - OperationId: deleteLink - Description: Permanently delete an existing link by **`ID`**. Requires writable `links` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /links/{ID} - Summary: Get link - OperationId: getLink - Description: Return the data of an existing link by **`ID`**. Requires `links` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/links - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /links/{ID} - Summary: Check if link exists - OperationId: existsLink - Description: Check if a link with **`ID`** exists, but do not return its data. Requires `links` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /links/{ID} - Summary: Update existing link - OperationId: updateLink - Description: Update an existing link by **`ID`** and return its persistent data. Requires writable `links` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/links Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/links - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: mailinglists Mailing Lists ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /mailinglists | List mailing lists | | PUT | /mailinglists | Create new mailing list | | DELETE | /mailinglists/{ID} | Delete mailing list | | GET | /mailinglists/{ID} | Get mailing list | | HEAD | /mailinglists/{ID} | Check if mailing list exists | | PATCH | /mailinglists/{ID} | Update existing mailing list | ### POST /mailinglists - Summary: List mailing lists - OperationId: listMailingLists - Description: List selected data from all mailing lists that match the specified filter and search criteria in a specific sort order. Requires `mailinglists` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /mailinglists - Summary: Create new mailing list - OperationId: createMailingList - Description: Create a new mailing list and return its persistent data. Requires writable `mailinglists` permission. Parameters: - (none) Request body: - #/components/requestBodies/mailinglists Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/mailinglists - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /mailinglists/{ID} - Summary: Delete mailing list - OperationId: deleteMailingList - Description: Permanently delete an existing mailing list by **`ID`**. Requires writable `mailinglists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /mailinglists/{ID} - Summary: Get mailing list - OperationId: getMailingList - Description: Return the data of an existing mailing list by **`ID`**. Requires `mailinglists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/mailinglists - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /mailinglists/{ID} - Summary: Check if mailing list exists - OperationId: existsMailingList - Description: Check if a mailing list with **`ID`** exists, but do not return its data. Requires `mailinglists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /mailinglists/{ID} - Summary: Update existing mailing list - OperationId: updateMailingList - Description: Update an existing mailing list by **`ID`** and return its persistent data. Requires writable `mailinglists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/mailinglists Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/mailinglists - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: mailingrecipients Mailing Recipients ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /mailingrecipients | List mailing recipients | | PUT | /mailingrecipients | Create new mailing recipient | | DELETE | /mailingrecipients/{ID} | Delete mailing recipient | | GET | /mailingrecipients/{ID} | Get mailing recipient | | HEAD | /mailingrecipients/{ID} | Check if mailing recipient exists | | PATCH | /mailingrecipients/{ID} | Update existing mailing recipient | ### POST /mailingrecipients - Summary: List mailing recipients - OperationId: listMailingRecipients - Description: List selected data from all mailing recipients that match the specified filter and search criteria in a specific sort order. Requires `messages` permission. Has dependency on `message`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /mailingrecipients - Summary: Create new mailing recipient - OperationId: createMailingRecipient - Description: Create a new mailing recipient and return its persistent data. Requires writable `messages` permission. Has dependency on `message`. Parameters: - (none) Request body: - #/components/requestBodies/mailingrecipients Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/mailingrecipients - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /mailingrecipients/{ID} - Summary: Delete mailing recipient - OperationId: deleteMailingRecipient - Description: Permanently delete an existing mailing recipient by **`ID`**. Requires writable `messages` permission. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /mailingrecipients/{ID} - Summary: Get mailing recipient - OperationId: getMailingRecipient - Description: Return the data of an existing mailing recipient by **`ID`**. Requires `messages` permission. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/mailingrecipients - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /mailingrecipients/{ID} - Summary: Check if mailing recipient exists - OperationId: existsMailingRecipients - Description: Check if a mailing recipient with **`ID`** exists, but do not return its data. Requires `messages` permission. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /mailingrecipients/{ID} - Summary: Update existing mailing recipient - OperationId: updateMailingRecipient - Description: Update an existing mailing recipient by **`ID`** and return its persistent data. Requires writable `messages` permission. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/mailingrecipients Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/mailingrecipients - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: mailservers Mail Servers ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /mailservers | List mail servers | | PUT | /mailservers | Create new mail server | | DELETE | /mailservers/{ID} | Delete mail server | | GET | /mailservers/{ID} | Get mail server | | HEAD | /mailservers/{ID} | Check if mail server exists | | PATCH | /mailservers/{ID} | Update existing mail server | ### POST /mailservers - Summary: List mail servers - OperationId: listMailServers - Description: List selected data from all mail servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /mailservers - Summary: Create new mail server - OperationId: createMailServer - Description: Create a new mail server and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/mailservers Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/mailservers - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /mailservers/{ID} - Summary: Delete mail server - OperationId: deleteMailServer - Description: Permanently delete an existing mail server by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /mailservers/{ID} - Summary: Get mail server - OperationId: getMailServer - Description: Return the data of an existing mail server by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/mailservers - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /mailservers/{ID} - Summary: Check if mail server exists - OperationId: existsMailServer - Description: Check if a mail server with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /mailservers/{ID} - Summary: Update existing mail server - OperationId: updateMailServer - Description: Update an existing mail server by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/mailservers Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/mailservers - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: messagereads Message-reads ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /messagereads | List message-reads | | PUT | /messagereads | Create new message-read | | DELETE | /messagereads/{ID} | Delete message-read | | GET | /messagereads/{ID} | Get message-read | | HEAD | /messagereads/{ID} | Check if message-read exists | | PATCH | /messagereads/{ID} | Update existing message-read | ### POST /messagereads - Summary: List message-reads - OperationId: listMessageReads - Description: List selected data from all message-reads that match the specified filter and search criteria in a specific sort order. Requires `messages` permission. Has dependency on `message`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /messagereads - Summary: Create new message-read - OperationId: createMessageRead - Description: Create a new message-read and return its persistent data. Requires writable `messages` permission and the authenticated user to be the `creator`. Has dependency on `message`. Parameters: - (none) Request body: - #/components/requestBodies/messagereads Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/messagereads - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /messagereads/{ID} - Summary: Delete message-read - OperationId: deleteMessageRead - Description: Permanently delete an existing message-read by **`ID`**. Requires writable `messages` permission and the authenticated user to be the `creator`. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /messagereads/{ID} - Summary: Get message-read - OperationId: getMessageRead - Description: Return the data of an existing message-read by **`ID`**. Requires `messages` permission. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/messagereads - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /messagereads/{ID} - Summary: Check if message-read exists - OperationId: existsMessageRead - Description: Check if a message-read with **`ID`** exists, but do not return its data. Requires `messages` permission. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /messagereads/{ID} - Summary: Update existing message-read - OperationId: updateMessageRead - Description: Update an existing message-read by **`ID`** and return its persistent data. Requires writable `messages` permission and the authenticated user to be the `creator`. Has dependency on `message`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/messagereads Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/messagereads - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: messages Messages ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /messages | List messages | | PUT | /messages | Create new message | | DELETE | /messages/{ID} | Delete message | | GET | /messages/{ID} | Get message | | HEAD | /messages/{ID} | Check if message exists | | PATCH | /messages/{ID} | Update existing message | ### POST /messages - Summary: List messages - OperationId: listMessages - Description: List selected data from all messages that match the specified filter and search criteria in a specific sort order. Requires `messages` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /messages - Summary: Create new message - OperationId: createMessage - Description: Create a new message and return its persistent data. Requires writable `messages` permission. Parameters: - (none) Request body: - #/components/requestBodies/messages Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/messages - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /messages/{ID} - Summary: Delete message - OperationId: deleteMessage - Description: Permanently delete an existing message by **`ID`**. Requires writable `messages` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /messages/{ID} - Summary: Get message - OperationId: getMessage - Description: Return the data of an existing message by **`ID`**. Requires `messages` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/messages - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /messages/{ID} - Summary: Check if message exists - OperationId: existsMessage - Description: Check if a message with **`ID`** exists, but do not return its data. Requires `messages` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /messages/{ID} - Summary: Update existing message - OperationId: updateMessage - Description: Update an existing message by **`ID`** and return its persistent data. Requires writable `messages` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/messages Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/messages - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: notes Notes ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /notes | List notes | | PUT | /notes | Create new note | | DELETE | /notes/{ID} | Delete note | | GET | /notes/{ID} | Get note | | HEAD | /notes/{ID} | Check if note exists | | PATCH | /notes/{ID} | Update existing note | ### POST /notes - Summary: List notes - OperationId: listNotes - Description: List selected data from all notes that match the specified filter and search criteria in a specific sort order. Requires `notes` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /notes - Summary: Create new note - OperationId: createNote - Description: Create a new note and return its persistent data. Requires writable `notes` permission. Parameters: - (none) Request body: - #/components/requestBodies/notes Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/notes - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /notes/{ID} - Summary: Delete note - OperationId: deleteNote - Description: Permanently delete an existing note by **`ID`**. Requires writable `notes` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /notes/{ID} - Summary: Get note - OperationId: getNote - Description: Return the data of an existing note by **`ID`**. Requires `notes` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/notes - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /notes/{ID} - Summary: Check if note exists - OperationId: existsNote - Description: Check if a note with **`ID`** exists, but do not return its data. Requires `notes` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /notes/{ID} - Summary: Update existing note - OperationId: updateNote - Description: Update an existing note by **`ID`** and return its persistent data. Requires writable `notes` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/notes Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/notes - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: objects Custom Objects ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /objects | List custom objects | | PUT | /objects | Create new custom object | | DELETE | /objects/{ID} | Delete custom object | | GET | /objects/{ID} | Get custom object | | HEAD | /objects/{ID} | Check if custom object exists | | PATCH | /objects/{ID} | Update existing custom object | ### POST /objects - Summary: List custom objects - OperationId: listObjects - Description: List selected data from all custom objects that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /objects - Summary: Create new custom object - OperationId: createObject - Description: Create a new custom object and return its persistent data. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/objects Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/objects - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /objects/{ID} - Summary: Delete custom object - OperationId: deleteObject - Description: Permanently delete an existing custom object by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /objects/{ID} - Summary: Get custom object - OperationId: getObject - Description: Return the data of an existing custom object by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/objects - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /objects/{ID} - Summary: Check if custom object exists - OperationId: existsObject - Description: Check if a custom object with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /objects/{ID} - Summary: Update existing custom object - OperationId: updateObject - Description: Update an existing custom object by **`ID`** and return its persistent data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/objects Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/objects - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: opportunities Opportunities ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /opportunities | List opportunities | | PUT | /opportunities | Create new opportunity | | DELETE | /opportunities/{ID} | Delete opportunity | | GET | /opportunities/{ID} | Get opportunity | | HEAD | /opportunities/{ID} | Check if opportunity exists | | PATCH | /opportunities/{ID} | Update existing opportunity | ### POST /opportunities - Summary: List opportunities - OperationId: listOpportunities - Description: List selected data from all opportunities that match the specified filter and search criteria in a specific sort order. Requires `opportunities` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /opportunities - Summary: Create new opportunity - OperationId: createOpportunity - Description: Create a new opportunity and return its persistent data. Requires writable `opportunities` permission. Parameters: - (none) Request body: - #/components/requestBodies/opportunities Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/opportunities - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /opportunities/{ID} - Summary: Delete opportunity - OperationId: deleteOpportunity - Description: Permanently delete an existing opportunity by **`ID`**. Requires writable `opportunities` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /opportunities/{ID} - Summary: Get opportunity - OperationId: getOpportunity - Description: Return the data of an existing opportunity by **`ID`**. Requires `opportunities` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/opportunities - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /opportunities/{ID} - Summary: Check if opportunity exists - OperationId: existsOpportunity - Description: Check if an opportunity with **`ID`** exists, but do not return its data. Requires `opportunities` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /opportunities/{ID} - Summary: Update existing opportunity - OperationId: updateOpportunity - Description: Update an existing opportunity by **`ID`** and return its persistent data. Requires writable `opportunities` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/opportunities Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/opportunities - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: participants Participants ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /participants | List participants | | PUT | /participants | Create new participant | | DELETE | /participants/{ID} | Delete participant | | GET | /participants/{ID} | Get participant | | HEAD | /participants/{ID} | Check if participant exists | | PATCH | /participants/{ID} | Update existing participant | ### POST /participants - Summary: List participants - OperationId: listParticipants - Description: List selected data from all participants that match the specified filter and search criteria in a specific sort order. Requires `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /participants - Summary: Create new participant - OperationId: createParticipant - Description: Create a new participant and return its persistent data. Requires writable `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`. Parameters: - (none) Request body: - #/components/requestBodies/participants Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/participants - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /participants/{ID} - Summary: Delete participant - OperationId: deleteParticipant - Description: Permanently delete an existing participant by **`ID`**. Requires writable `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /participants/{ID} - Summary: Get participant - OperationId: getParticipant - Description: Return the data of an existing participant by **`ID`**. Requires `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/participants - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /participants/{ID} - Summary: Check if participant exists - OperationId: existsParticipant - Description: Check if a participant with **`ID`** exists, but do not return its data. Requires `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /participants/{ID} - Summary: Update existing participant - OperationId: updateParticipant - Description: Update an existing participant by **`ID`** and return its persistent data. Requires writable `mailinglists` or `campaigns` permission. Has dependency on `mailinglist` or `campaign`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/participants Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/participants - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: payments Payments ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /payments | List payments | | PUT | /payments | Create new payment | | DELETE | /payments/{ID} | Delete payment | | GET | /payments/{ID} | Get payment | | HEAD | /payments/{ID} | Check if payment exists | | PATCH | /payments/{ID} | Update existing payment | ### POST /payments - Summary: List payments - OperationId: listPayments - Description: List selected data from all payments that match the specified filter and search criteria in a specific sort order. Requires `payments` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /payments - Summary: Create new payment - OperationId: createPayment - Description: Create a new payment and return its persistent data. Requires writable `payments` permission. Parameters: - (none) Request body: - #/components/requestBodies/payments Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/payments - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /payments/{ID} - Summary: Delete payment - OperationId: deletePayment - Description: Permanently delete an existing payment by **`ID`**. Requires writable `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /payments/{ID} - Summary: Get payment - OperationId: getPayment - Description: Return the data of an existing payment by **`ID`**. Requires `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/payments - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /payments/{ID} - Summary: Check if payment exists - OperationId: existsPayment - Description: Check if a payment with **`ID`** exists, but do not return its data. Requires `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /payments/{ID} - Summary: Update existing payment - OperationId: updatePayment - Description: Update an existing payment by **`ID`** and return its persistent data. Requires writable `payments` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/payments Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/payments - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: permissions Permissions *(admin read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /permissions | List permissions | | GET | /permissions/{ID} | Get permission | | HEAD | /permissions/{ID} | Check if permission exists | ### POST /permissions - Summary: List permissions - OperationId: listPermissions - Description: List selected data from all permissions that match the specified filter and search criteria in a specific sort order. Requires `admin` permission. Has dependency on `group`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /permissions/{ID} - Summary: Get permission - OperationId: getPermission - Description: Return the data of an existing permission by **`ID`**. Requires `admin` permission. Has dependency on `group`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/permissions - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /permissions/{ID} - Summary: Check if permission exists - OperationId: existsPermission - Description: Check if a permission with **`ID`** exists, but do not return its data. Requires `admin` permission. Has dependency on `group`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: pricelists Price Lists ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /pricelists | List price lists | | PUT | /pricelists | Create new price list | | DELETE | /pricelists/{ID} | Delete price list | | GET | /pricelists/{ID} | Get price list | | HEAD | /pricelists/{ID} | Check if price list exists | | PATCH | /pricelists/{ID} | Update existing price list | ### POST /pricelists - Summary: List price lists - OperationId: listPriceLists - Description: List selected data from all price lists that match the specified filter and search criteria in a specific sort order. Requires `pricelists` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /pricelists - Summary: Create new price list - OperationId: createPriceList - Description: Create a new price list and return its persistent data. Requires writable `pricelists` permission. Parameters: - (none) Request body: - #/components/requestBodies/pricelists Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/pricelists - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /pricelists/{ID} - Summary: Delete price list - OperationId: deletePriceList - Description: Permanently delete an existing price list by **`ID`**. Requires writable `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /pricelists/{ID} - Summary: Get price list - OperationId: getPriceList - Description: Return the data of an existing price list by **`ID`**. Requires `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/pricelists - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /pricelists/{ID} - Summary: Check if price list exists - OperationId: existsPriceList - Description: Check if a price list with **`ID`** exists, but do not return its data. Requires `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /pricelists/{ID} - Summary: Update existing price list - OperationId: updatePriceList - Description: Update an existing price list by **`ID`** and return its persistent data. Requires writable `pricelists` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/pricelists Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/pricelists - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: pricelists2accounts Pricelists-to-accounts ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /pricelists2accounts | List pricelists-to-accounts | | PUT | /pricelists2accounts | Create new price | | DELETE | /pricelists2accounts/{ID} | Delete price | | GET | /pricelists2accounts/{ID} | Get price | | HEAD | /pricelists2accounts/{ID} | Check if price exists | | PATCH | /pricelists2accounts/{ID} | Update existing price | ### POST /pricelists2accounts - Summary: List pricelists-to-accounts - OperationId: listPriceListsToAccounts - Description: List selected data from all pricelists-to-accounts that match the specified filter and search criteria in a specific sort order. Requires `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /pricelists2accounts - Summary: Create new price - OperationId: createPriceListToAccount - Description: Create a new price and return its persistent data. Requires writable `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`. Parameters: - (none) Request body: - #/components/requestBodies/pricelists2accounts Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/pricelists2accounts - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /pricelists2accounts/{ID} - Summary: Delete price - OperationId: deletePriceListToAccount - Description: Permanently delete an existing price by **`ID`**. Requires writable `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /pricelists2accounts/{ID} - Summary: Get price - OperationId: getPriceListToAccount - Description: Return the data of an existing price by **`ID`**. Requires `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/pricelists2accounts - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /pricelists2accounts/{ID} - Summary: Check if price exists - OperationId: existsPriceListToAccount - Description: Check if a price with **`ID`** exists, but do not return its data. Requires `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /pricelists2accounts/{ID} - Summary: Update existing price - OperationId: updatePriceListToAccount - Description: Update an existing price by **`ID`** and return its persistent data. Requires writable `pricelists` or `accounts` permission. Has dependencies on `pricelist` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/pricelists2accounts Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/pricelists2accounts - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: prices Prices ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /prices | List prices | | PUT | /prices | Create new price | | DELETE | /prices/{ID} | Delete price | | GET | /prices/{ID} | Get price | | HEAD | /prices/{ID} | Check if price exists | | PATCH | /prices/{ID} | Update existing price | ### POST /prices - Summary: List prices - OperationId: listPrices - Description: List selected data from all prices that match the specified filter and search criteria in a specific sort order. Requires `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /prices - Summary: Create new price - OperationId: createPrice - Description: Create a new price and return its persistent data. Requires writable `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`. Parameters: - (none) Request body: - #/components/requestBodies/prices Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/prices - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /prices/{ID} - Summary: Delete price - OperationId: deletePrice - Description: Permanently delete an existing price by **`ID`**. Requires writable `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /prices/{ID} - Summary: Get price - OperationId: getPrice - Description: Return the data of an existing price by **`ID`**. Requires `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/prices - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /prices/{ID} - Summary: Check if price exists - OperationId: existsPrice - Description: Check if a price with **`ID`** exists, but do not return its data. Requires `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /prices/{ID} - Summary: Update existing price - OperationId: updatePrice - Description: Update an existing price by **`ID`** and return its persistent data. Requires writable `inventory` or `pricelists` permission. Has dependencies on `items` and `pricelist`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/prices Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/prices - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: projects Projects ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /projects | List projects | | PUT | /projects | Create new project | | DELETE | /projects/{ID} | Delete project | | GET | /projects/{ID} | Get project | | HEAD | /projects/{ID} | Check if project exists | | PATCH | /projects/{ID} | Update existing project | ### POST /projects - Summary: List projects - OperationId: listProjects - Description: List selected data from all projects that match the specified filter and search criteria in a specific sort order. Requires `projects` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /projects - Summary: Create new project - OperationId: createProject - Description: Create a new project and return its persistent data. Requires writable `projects` permission. Parameters: - (none) Request body: - #/components/requestBodies/projects Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/projects - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /projects/{ID} - Summary: Delete project - OperationId: deleteProject - Description: Permanently delete an existing project by **`ID`**. Requires writable `projects` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /projects/{ID} - Summary: Get project - OperationId: getProject - Description: Return the data of an existing project by **`ID`**. Requires `projects` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/projects - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /projects/{ID} - Summary: Check if project exists - OperationId: existsProject - Description: Check if a project with **`ID`** exists, but do not return its data. Requires `projects` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /projects/{ID} - Summary: Update existing project - OperationId: updateProject - Description: Update an existing project by **`ID`** and return its persistent data. Requires writable `projects` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/projects Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/projects - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: records Records ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /records | List records | | PUT | /records | Create new record | | DELETE | /records/{ID} | Delete record | | GET | /records/{ID} | Get record | | HEAD | /records/{ID} | Check if record exists | | PATCH | /records/{ID} | Update existing record | ### POST /records - Summary: List records - OperationId: listRecords - Description: List selected data from all records that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /records - Summary: Create new record - OperationId: createRecord - Description: Create a new record and return its persistent data. Requires the authenticated user to be the `creator`. Parameters: - (none) Request body: - #/components/requestBodies/records Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/records - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /records/{ID} - Summary: Delete record - OperationId: deleteRecord - Description: Permanently delete an existing record by **`ID`**. Requires the authenticated user to be the `creator`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /records/{ID} - Summary: Get record - OperationId: getRecord - Description: Return the data of an existing record by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/records - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /records/{ID} - Summary: Check if record exists - OperationId: existsRecord - Description: Check if a record with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /records/{ID} - Summary: Update existing record - OperationId: updateRecord - Description: Update an existing record by **`ID`** and return its persistent data. Requires the authenticated user to be the `creator`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/records Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/records - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: relateditems Related Items ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /relateditems | List related items | | PUT | /relateditems | Create new related item | | DELETE | /relateditems/{ID} | Delete related item | | GET | /relateditems/{ID} | Get related item | | HEAD | /relateditems/{ID} | Check if related item exists | | PATCH | /relateditems/{ID} | Update existing related item | ### POST /relateditems - Summary: List related items - OperationId: listRelatedItems - Description: List selected data from all related items that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Has dependency on `item`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /relateditems - Summary: Create new related item - OperationId: createRelatedItem - Description: Create a new related item and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - (none) Request body: - #/components/requestBodies/relateditems Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/relateditems - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /relateditems/{ID} - Summary: Delete related item - OperationId: deleteRelatedItem - Description: Permanently delete an existing related item by **`ID`**. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /relateditems/{ID} - Summary: Get related item - OperationId: getRelatedItem - Description: Return the data of an existing related item by **`ID`**. Requires `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/relateditems - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /relateditems/{ID} - Summary: Check if related item exists - OperationId: existsRelatedItem - Description: Check if a related item with **`ID`** exists, but do not return its data. Requires `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /relateditems/{ID} - Summary: Update existing related item - OperationId: updateRelatedItem - Description: Update an existing related item by **`ID`** and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/relateditems Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/relateditems - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: resources Resources *(developer read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /resources | List resources | | GET | /resources/{ID} | Get resource | | HEAD | /resources/{ID} | Check if resource exists | ### POST /resources - Summary: List resources - OperationId: listResources - Description: List selected data from all resources that match the specified filter and search criteria in a specific sort order. Requires `dev` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /resources/{ID} - Summary: Get resource - OperationId: getResource - Description: Return the data of an existing resource by **`ID`**. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/resources - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /resources/{ID} - Summary: Check if resource exists - OperationId: existsResource - Description: Check if an resource with **`ID`** exists, but do not return its data. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: services Services *(developer read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /services | List services | | GET | /services/{ID} | Get service | | HEAD | /services/{ID} | Check if service exists | ### POST /services - Summary: List services - OperationId: listServices - Description: List selected data from all services that match the specified filter and search criteria in a specific sort order. Requires `dev` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /services/{ID} - Summary: Get service - OperationId: getService - Description: Return the data of an existing service by **`ID`**. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/services - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /services/{ID} - Summary: Check if service exists - OperationId: existsService - Description: Check if an service with **`ID`** exists, but do not return its data. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: stocktransactions Stock Transactions ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /stocktransactions | List stock transactions | | PUT | /stocktransactions | Create new stock transaction | | DELETE | /stocktransactions/{ID} | Delete stock transaction | | GET | /stocktransactions/{ID} | Get stock transaction | | HEAD | /stocktransactions/{ID} | Check if stock transaction exists | | PATCH | /stocktransactions/{ID} | Update existing stock transaction | ### POST /stocktransactions - Summary: List stock transactions - OperationId: listStockTransactions - Description: List selected data from all stock transactions that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Has dependency on `item`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /stocktransactions - Summary: Create new stock transaction - OperationId: createStockTransaction - Description: Create a new stock transaction and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - (none) Request body: - #/components/requestBodies/stocktransactions Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/stocktransactions - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /stocktransactions/{ID} - Summary: Delete stock transaction - OperationId: deleteStockTransaction - Description: Permanently delete an existing stock transaction by **`ID`**. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /stocktransactions/{ID} - Summary: Get stock transaction - OperationId: getStockTransaction - Description: Return the data of an existing stock transaction by **`ID`**. Requires `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/stocktransactions - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /stocktransactions/{ID} - Summary: Check if stock transaction exists - OperationId: existsStockTransaction - Description: Check if a stock transaction with **`ID`** exists, but do not return its data. Requires `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /stocktransactions/{ID} - Summary: Update existing stock transaction - OperationId: updateStockTransaction - Description: Update an existing stock transaction by **`ID`** and return its persistent data. Requires writable `inventory` permission. Has dependency on `item`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/stocktransactions Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/stocktransactions - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: storages Storages ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /storages | List storages | | PUT | /storages | Create new storage | | DELETE | /storages/{ID} | Delete storage | | GET | /storages/{ID} | Get storage | | HEAD | /storages/{ID} | Check if storage exists | | PATCH | /storages/{ID} | Update existing storage | ### POST /storages - Summary: List storages - OperationId: listStorages - Description: List selected data from all storages that match the specified filter and search criteria in a specific sort order. Requires `inventory` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /storages - Summary: Create new storage - OperationId: createStorage - Description: Create a new storage and return its persistent data. Requires writable `inventory` permission. Parameters: - (none) Request body: - #/components/requestBodies/storages Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/storages - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /storages/{ID} - Summary: Delete storage - OperationId: deleteStorage - Description: Permanently delete an existing storage by **`ID`**. Requires writable `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /storages/{ID} - Summary: Get storage - OperationId: getStorage - Description: Return the data of an existing storage by **`ID`**. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/storages - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /storages/{ID} - Summary: Check if storage exists - OperationId: existsStorage - Description: Check if a storage with **`ID`** exists, but do not return its data. Requires `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /storages/{ID} - Summary: Update existing storage - OperationId: updateStorage - Description: Update an existing storage by **`ID`** and return its persistent data. Requires writable `inventory` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/storages Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/storages - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: suppliers Suppliers ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /suppliers | List suppliers | | PUT | /suppliers | Create new supplier | | DELETE | /suppliers/{ID} | Delete supplier | | GET | /suppliers/{ID} | Get supplier | | HEAD | /suppliers/{ID} | Check if supplier exists | | PATCH | /suppliers/{ID} | Update existing supplier | ### POST /suppliers - Summary: List suppliers - OperationId: listSuppliers - Description: List selected data from all suppliers that match the specified filter and search criteria in a specific sort order. Requires `inventory` or `accounts` permission. Has dependencies on `items` and `account`. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /suppliers - Summary: Create new supplier - OperationId: createSupplier - Description: Create a new supplier and return its persistent data. Requires writable `inventory` or `accounts` permission. Has dependencies on `items` and `account`. Parameters: - (none) Request body: - #/components/requestBodies/suppliers Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/suppliers - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /suppliers/{ID} - Summary: Delete supplier - OperationId: deleteSupplier - Description: Permanently delete an existing supplier by **`ID`**. Requires writable `inventory` or `accounts` permission. Has dependencies on `items` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /suppliers/{ID} - Summary: Get supplier - OperationId: getSupplier - Description: Return the data of an existing supplier by **`ID`**. Requires `inventory` or `accounts` permission. Has dependencies on `items` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/suppliers - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /suppliers/{ID} - Summary: Check if supplier exists - OperationId: existsSupplier - Description: Check if a supplier with **`ID`** exists, but do not return its data. Requires `inventory` or `accounts` permission. Has dependencies on `items` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /suppliers/{ID} - Summary: Update existing supplier - OperationId: updateSupplier - Description: Update an existing supplier by **`ID`** and return its persistent data. Requires writable `inventory` or `accounts` permission. Has dependencies on `items` and `account`. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/suppliers Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/suppliers - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: tasks Tasks ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /tasks | List tasks | | PUT | /tasks | Create new task | | DELETE | /tasks/{ID} | Delete task | | GET | /tasks/{ID} | Get task | | HEAD | /tasks/{ID} | Check if task exists | | PATCH | /tasks/{ID} | Update existing task | ### POST /tasks - Summary: List tasks - OperationId: listTasks - Description: List selected data from all tasks that match the specified filter and search criteria in a specific sort order. Requires `tasks` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /tasks - Summary: Create new task - OperationId: createTask - Description: Create a new task and return its persistent data. Requires writable `tasks` permission. Parameters: - (none) Request body: - #/components/requestBodies/tasks Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/tasks - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /tasks/{ID} - Summary: Delete task - OperationId: deleteTask - Description: Permanently delete an existing task by **`ID`**. Requires writable `tasks` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /tasks/{ID} - Summary: Get task - OperationId: getTask - Description: Return the data of an existing task by **`ID`**. Requires `tasks` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/tasks - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /tasks/{ID} - Summary: Check if task exists - OperationId: existsTask - Description: Check if a task with **`ID`** exists, but do not return its data. Requires `tasks` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /tasks/{ID} - Summary: Update existing task - OperationId: updateTask - Description: Update an existing task by **`ID`** and return its persistent data. Requires writable `tasks` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/tasks Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/tasks - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: tickets Tickets ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /tickets | List tickets | | PUT | /tickets | Create new ticket | | DELETE | /tickets/{ID} | Delete ticket | | GET | /tickets/{ID} | Get ticket | | HEAD | /tickets/{ID} | Check if ticket exists | | PATCH | /tickets/{ID} | Update existing ticket | ### POST /tickets - Summary: List tickets - OperationId: listTickets - Description: List selected data from all tickets that match the specified filter and search criteria in a specific sort order. Requires `tickets` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /tickets - Summary: Create new ticket - OperationId: createTicket - Description: Create a new ticket and return its persistent data. Requires writable `tickets` permission. Parameters: - (none) Request body: - #/components/requestBodies/tickets Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/tickets - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /tickets/{ID} - Summary: Delete ticket - OperationId: deleteTicket - Description: Permanently delete an existing ticket by **`ID`**. Requires writable `tickets` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /tickets/{ID} - Summary: Get ticket - OperationId: getTicket - Description: Return the data of an existing ticket by **`ID`**. Requires `tickets` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/tickets - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /tickets/{ID} - Summary: Check if ticket exists - OperationId: existsTicket - Description: Check if a ticket with **`ID`** exists, but do not return its data. Requires `tickets` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /tickets/{ID} - Summary: Update existing ticket - OperationId: updateTicket - Description: Update an existing ticket by **`ID`** and return its persistent data. Requires writable `tickets` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/tickets Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/tickets - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: transactions Transactions ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /transactions | List transactions | | PUT | /transactions | Create new transaction | | DELETE | /transactions/{ID} | Delete transaction | | GET | /transactions/{ID} | Get transaction | | HEAD | /transactions/{ID} | Check if transaction exists | | PATCH | /transactions/{ID} | Update existing transaction | ### POST /transactions - Summary: List transactions - OperationId: listTransactions - Description: List selected data from all transactions that match the specified filter and search criteria in a specific sort order. Requires `billing`, `procurement` or `production` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### PUT /transactions - Summary: Create new transaction - OperationId: createTransaction - Description: Create a new transaction and return its persistent data. Requires writable `billing`, `procurement` or `production` permission. Parameters: - (none) Request body: - #/components/requestBodies/transactions Responses: - 201 — Successful Creation (Created) - application/json — #/components/schemas/transactions - 401: #/components/responses/401 - 403: #/components/responses/403 - 409 — ID Present (Conflict) - 410 — Gone - 500: #/components/responses/500 ### DELETE /transactions/{ID} - Summary: Delete transaction - OperationId: deleteTransaction - Description: Permanently delete an existing transaction by **`ID`**. Requires writable `billing`, `procurement` or `production` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - (none) Responses: - 204 — Successful Deletion (No Content) - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Not Deletable (Conflict) - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 ### GET /transactions/{ID} - Summary: Get transaction - OperationId: getTransaction - Description: Return the data of an existing transaction by **`ID`**. Requires `billing`, `procurement` or `production` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/transactions - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /transactions/{ID} - Summary: Check if transaction exists - OperationId: existsTransaction - Description: Check if a transaction with **`ID`** exists, but do not return its data. Requires `billing`, `procurement` or `production` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 ### PATCH /transactions/{ID} - Summary: Update existing transaction - OperationId: updateTransaction - Description: Update an existing transaction by **`ID`** and return its persistent data. Requires writable `billing`, `procurement` or `production` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Match - #/components/parameters/If-Unmodified-Since Request body: - #/components/requestBodies/transactions Responses: - 200 — Successful Update (OK) - application/json — #/components/schemas/transactions - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 409 — Non-matching ID (Conflict) - 410 — Gone - 412 — Non-matching ETag (Precondition Failed) - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: users Users *(restricted read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /users | List users | | GET | /users/{ID} | Get user | | HEAD | /users/{ID} | Check if user exists | ### POST /users - Summary: List users - OperationId: listUsers - Description: List selected data from all users that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /users/{ID} - Summary: Get user - OperationId: getUser - Description: Return the data of an existing user by **`ID`**. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/users - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /users/{ID} - Summary: Check if user exists - OperationId: existsUser - Description: Check if a user with **`ID`** exists, but do not return its data. Requires no specific permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500 --- # ZeyOS Standard REST API (v1) ## Tag: weblets Weblets *(developer read-only)* ## Spec - /__doc/openapi/api.json ## Servers - https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud ## Authentication - oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token - token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750)) - session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265)) ## Endpoints | Method | Path | Summary | | ------ | ---- | ------- | | POST | /weblets | List weblets | | GET | /weblets/{ID} | Get weblet | | HEAD | /weblets/{ID} | Check if weblet exists | ### POST /weblets - Summary: List weblets - OperationId: listWeblets - Description: List selected data from all weblets that match the specified filter and search criteria in a specific sort order. Requires `dev` permission. Parameters: - (none) Request body: - #/components/requestBodies/list Responses: - 200 — OK - application/json — array - 401: #/components/responses/401 - 403: #/components/responses/403 - 500: #/components/responses/500 ### GET /weblets/{ID} - Summary: Get weblet - OperationId: getWeblet - Description: Return the data of an existing weblet by **`ID`**. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/expand - #/components/parameters/extdata - #/components/parameters/tags - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 200 — OK - application/json — #/components/schemas/weblets - 304 — Not Modified - 401: #/components/responses/401 - 403: #/components/responses/403 - 404 — Not Found - 500: #/components/responses/500 ### HEAD /weblets/{ID} - Summary: Check if weblet exists - OperationId: existsWeblet - Description: Check if an weblet with **`ID`** exists, but do not return its data. Requires `dev` permission. Parameters: - #/components/parameters/ID - #/components/parameters/If-Modified-Since - #/components/parameters/If-None-Match Request body: - (none) Responses: - 204: #/components/responses/204-exists - 304 — Not Modified - 401: #/components/responses/401 - 404 — Not Found - 500: #/components/responses/500