{"value":[{"id":"deleteIntegration","name":"Delete a ThirdParty integration","method":"DELETE","urlTemplate":"/apps/{id}","description":"Delete a ThirdParty integration owned by your tenant. Returns 404 if the integration doesn't exist or isn't owned by your tenant. Native integrations cannot be deleted via this endpoint.","request":null},{"id":"getActiveSubscription","name":"Get active subscription for an integration","method":"GET","urlTemplate":"/subscriptions/app/{appId}/tenant","description":"Return the active subscription for the given integration + the calling tenant. Returns 404 if no active subscription exists. Used by license-management UIs to display subscription details.","request":null},{"id":"getSubscriptionCount","name":"Get entitlement counts for a subscription","method":"GET","urlTemplate":"/subscriptions/{id}/count","description":"Return active-vs-total entitlement counts for a subscription. Useful for license-management dashboards that show how many seats are in use out of the total licensed.","request":null},{"id":"inviteUser","name":"Invite a user into your tenant","method":"POST","urlTemplate":"/users","description":"Create a new MediaValet user in your tenant. The user receives an invite email and completes onboarding via the standard MediaValet sign-up flow.","request":null},{"id":"listSubscriptionEntitlements","name":"List user entitlements in a subscription","method":"GET","urlTemplate":"/user-entitlement/subscription/{subscriptionId}","description":"Return every user entitlement belonging to the given subscription. Each entitlement maps one user to one subscription with a role and an active/inactive flag.","request":null},{"id":"listAllowedOrigins","name":"List whitelisted origins for an integration","method":"GET","urlTemplate":"/allowed-origins","description":"Return every origin currently whitelisted in the CSP allowlist for the given ThirdParty integration. Used when embedding the integration in an iframe -- only origins on this list may host the embedding page. Pass the integration's id via the `appId` query parameter.","request":null},{"id":"listIntegrations","name":"List your tenant's integrations","method":"GET","urlTemplate":"/apps/tenant","description":"Return every integration registered to the calling tenant -- both Native (MediaValet-managed: Drupal, WordPress, Monday) and ThirdParty (customer-registered). The response `payload` is an array of integration objects; `recordCount.totalRecordsFound` is the total.","request":null},{"id":"createIntegration","name":"Register a new ThirdParty integration","method":"POST","urlTemplate":"/apps","description":"Create a new ThirdParty integration for your tenant. Only `appName` is required in the request body; the other fields (`appDescription`, `iconUrl`, `currentVersion`) are optional partner-facing labels. The response `payload.id` is the new integration's identifier -- use it as the `appId` parameter on subsequent calls to manage allowed origins, subscriptions, and user entitlements.","request":null},{"id":"deleteAllowedOrigins","name":"Remove one or more allowed origins","method":"DELETE","urlTemplate":"/allowed-origins/batch","description":"Remove origins by id. Pass a single-element array to remove just one. Only origins belonging to the calling tenant are affected. Response `payload.removed` is the count of origins removed.","request":null},{"id":"renameIntegration","name":"Rename a ThirdParty integration","method":"PATCH","urlTemplate":"/apps/{id}/name","description":"Rename a ThirdParty integration. Native integrations cannot be renamed. Returns the updated integration in the response `payload`.","request":null},{"id":"updateEntitlement","name":"Update a user entitlement","method":"PUT","urlTemplate":"/user-entitlement","description":"Update an existing user entitlement -- toggle the active flag, change the role, etc. The `entitlementId` field identifies the entitlement to update.","request":null},{"id":"addAllowedOrigin","name":"Whitelist an origin for an integration","method":"POST","urlTemplate":"/allowed-origins","description":"Add an origin (scheme + host + optional port) to the CSP allowlist for a ThirdParty integration. The change takes effect immediately -- no cache propagation delay. The response `payload` is the new allowed-origin id (UUID).","request":null}],"nextLink":null}