# Applications

Apps are third-party integrations and extensions that extend Caraer functionality. They can provide additional features, connect to external services, include Webhooks for event handling, and offer custom UI components through AppBars. Apps enable the platform ecosystem where companies can integrate with their existing tools and workflows. Apps can be public (available to all companies) or private (company-specific), have pricing models, descriptions, and settings schemas. Apps can include Webhooks with rate limiting and secret-based authentication. The App system enables extensibility and integration capabilities, allowing the platform to connect with external systems and provide additional functionality beyond the core platform features.

## Update a webhook for an app

 - [PUT /api/v2/apps/{appUuid}/webhooks/{webhookUuid}](https://developer.caraer.com/apis/applications/updateappwebhookforapp.md): Updates an existing webhook that belongs to the specified app and the authenticated user's selected company.

## Delete a webhook for an app

 - [DELETE /api/v2/apps/{appUuid}/webhooks/{webhookUuid}](https://developer.caraer.com/apis/applications/deleteappwebhook.md): Deletes a webhook that belongs to the specified app and the authenticated user's selected company.

## Get a public app (creator view)

 - [GET /api/v2/apps/public/{uuid}](https://developer.caraer.com/apis/applications/getpublicapp.md): Gets the full app for the creator, including appPublish, appBars, details, and pricing. Returns AppCreatorDTO with everything under App.

## Update a public app (creator edit)

 - [PUT /api/v2/apps/public/{uuid}](https://developer.caraer.com/apis/applications/updatepublicapp.md): Updates a public app with the full creator payload (label, description, details, pricing, settingsSchema, appBars). Send the entire AppCreatorDTO as returned by GET. Returns the updated app as AppCreatorDTO.

## Uninstall an application

 - [POST /api/v2/apps/{uuid}/uninstall](https://developer.caraer.com/apis/applications/uninstallapp.md): Removes the installed application specified by its UUID using the provided settings. The request body should contain an AppRequest with the uninstallation settings. Returns the updated application details as a ShowResponse wrapping an AppDTO.

## Rotate application configurations

 - [POST /api/v2/apps/{uuid}/rotate](https://developer.caraer.com/apis/applications/rotateapp.md): Rotates the configuration or settings for the specified application by UUID. On success, returns the updated application details as a ShowResponse wrapping an AppDTO.

## Install an application

 - [POST /api/v2/apps/{uuid}/install](https://developer.caraer.com/apis/applications/installapp.md): Installs the application specified by its UUID with optional initial configuration settings. Returns the updated application details as a ShowResponse wrapping an AppDTO.

## Create a webhook for an app (app-scoped path)

 - [POST /api/v2/apps/{appUuid}/webhooks](https://developer.caraer.com/apis/applications/createappwebhookforapp.md): Creates a new webhook for the specified app using normal bearer authentication. The app must be installed for the authenticated user's selected company. This endpoint is an app-scoped equivalent of the generic webhook creation endpoint.

## Test an unsaved webhook for an app

 - [POST /api/v2/apps/{appUuid}/webhooks/test](https://developer.caraer.com/apis/applications/testappwebhookunsaved.md): Generates a test webhook payload from webhook configuration supplied in the request body without persisting the webhook. When recordUuid is omitted, auto-resolves the record and event from the webhook topic (same as the saved-webhook auto test endpoint).

## Test a webhook for an app (auto-resolve)

 - [POST /api/v2/apps/{appUuid}/webhooks/test/{webhookUuid}](https://developer.caraer.com/apis/applications/testappwebhookauto.md): Generates a test webhook payload using the latest updated record for the webhook topic object and the event type from the webhook topic (uses updated when the topic action is all).

## Test a webhook for an app

 - [POST /api/v2/apps/{appUuid}/webhooks/test/{webhookUuid}/{recordUuid}/{eventType}](https://developer.caraer.com/apis/applications/testappwebhook.md): Generates a test webhook payload for a specific record and event type. Uses the same payload generation logic as live webhook delivery.

## Retrieve a paginated list of webhooks for an app

 - [POST /api/v2/apps/{appUuid}/webhooks/index](https://developer.caraer.com/apis/applications/getappwebhooks.md): Fetches a paginated and optionally filtered list of webhooks associated with the specified app and the authenticated user's selected company.

## Create a public app

 - [POST /api/v2/apps/public](https://developer.caraer.com/apis/applications/createpublicapp.md): Creates a new public app with the provided label and optional description. Public apps are automatically published for the creating user's company. Returns the created app details as a CreateResponse wrapping an AppDTO.

## Submit a public app for review

 - [POST /api/v2/apps/public/{uuid}/submit](https://developer.caraer.com/apis/applications/submitpublicapp.md): Submits a public app specified by its UUID for review. Returns the submitted app details as a ShowResponse wrapping an AppDTO.

## Review a public app

 - [POST /api/v2/apps/public/{uuid}/review](https://developer.caraer.com/apis/applications/reviewpublicapp.md): Sets review outcome (approve/reject/changes requested), feedback, and optional reviewer notes. Returns the updated app details as a ShowResponse wrapping an AppDTO.

## Create a private app

 - [POST /api/v2/apps/private](https://developer.caraer.com/apis/applications/createprivateapp.md): Creates a new private app with the provided label and optional description. Private apps are automatically installed for the creating user's company. Returns the created app details as a CreateResponse wrapping an AppDTO.

## Retrieve apps created by the logged-in user's selected company

 - [POST /api/v2/apps/my/index](https://developer.caraer.com/apis/applications/getmycreatedapps.md): Fetches a paginated and optionally filtered list of apps where the selected company is the creator. Returns a PaginationResponse containing AppDTO objects.

## Retrieve a paginated list of applications

 - [POST /api/v2/apps/index](https://developer.caraer.com/apis/applications/getapps.md): Fetches a paginated and optionally filtered list of applications. The list is sorted alphabetically by category and name. On success, returns a PaginationResponse containing AppSummaryDTO objects.

## Retrieve application details by UUID

 - [GET /api/v2/apps/{uuid}](https://developer.caraer.com/apis/applications/getapp.md): Fetches details about an application specified by its UUID. Returns the application details as a ShowResponse wrapping an AppDetailDTO.

## Get webhook property topic options

 - [GET /api/v2/apps/{appUuid}/webhooks/property-topics](https://developer.caraer.com/apis/applications/getwebhookpropertytopics.md): Returns property names on an object that can be used in 4-part property_changed webhook topics.

## Get available webhook formats

 - [GET /api/v2/apps/{appUuid}/webhooks/formats](https://developer.caraer.com/apis/applications/getwebhookformats.md): Returns all supported webhook payload formats with their details.

## Get available webhook record events

 - [GET /api/v2/apps/{appUuid}/webhooks/events](https://developer.caraer.com/apis/applications/getwebhookevents.md): Returns all supported record webhook events with their details.

## Get current user's company information

 - [GET /api/v2/apps/{appUuid}/me](https://developer.caraer.com/apis/applications/getcompanyinformation.md): Retrieves the company information of the authenticated user. The response includes public details of the user's selected company.

