openapi: 3.0.0 info: title: 'Admin API Reference' version: '2024-09-02' description: > The Zephr Admin API provides RESTful access to all Zephr functionality. It is designed for server-side integrations. All requests must be signed as described in HMAC Request Signing and Key Pairs. The Admin API uses a base URL with the following format: `https://{tenantId}.api.zephr.com` **Note**: If you have multiple tenants, the current tenant ID is shown in a blue box in the top right of the Admin Console. If you have a single site, you can find the tenant ID by navigating to your site domains. To do this, select **Sites** from the **Delivery** menu, select your site, and then click the **Site Domains** button. The tenant ID is the first part of the domain. For example, if the domain is *news-paper.cdn.zephr.com*, the tenant ID is *news*. tags: - name: Account User description: Contains operations on the Account User resource. x-displayName: Account User - name: Admin User description: Contains operations on the Admin User resource. x-displayName: Admin User - name: Bundle description: Contains operations on the Bundle resource. x-displayName: Bundle - name: Cache Configurations description: Contains operations on the Cache Configurations resource. x-displayName: Cache Configurations - name: Cache Management description: Cache Mangement x-displayName: Cache Management - name: Company description: Actions on resource Company x-displayName: Company - name: Configuration description: Blaize tenant configuration x-displayName: Configuration - name: Credit description: Actions on resource Credit x-displayName: Credit - name: Decision Engine x-displayName: Decision Engine - name: Email Templates description: Actions on email templates x-displayName: Email Templates - name: Entitlement description: Actions on resource Entitlement x-displayName: Entitlement - name: Feature Rules description: Actions on resource Feature Rules x-displayName: Feature Rules - name: Form description: Actions on resource Form x-displayName: Form - name: Gifts x-displayName: Gifts - name: Grants description: Actions on resource Grant x-displayName: Grants - name: Meter description: Actions on resource Meter x-displayName: Meter - name: Products description: Actions on resource Product x-displayName: Products - name: Request Rules description: Actions on resource Request Rules x-displayName: Request Rules - name: Session description: Actions on resource Session x-displayName: Session - name: Static Items description: Actions on resource Static Item x-displayName: Static Items - name: Third Party Authentication description: Contains operations for the OAuth 2.0 Authorization Code Flow Token Exchange. x-displayName: Third Party Authentication - name: User Export x-displayName: User Export - name: User Schema description: Actions on resource User Schema x-displayName: User Schema - name: Users description: > Contains operations on the User resource. **Important**: The Attributes object contains the custom-defined attributes for a user. x-displayName: Users - name: V4 Session description: Actions on resource Session x-displayName: V4 Session - name: Webhook description: Actions on resource Webhook x-displayName: Webhook - name: Account description: Actions on resource Account x-displayName: Account servers: - url: https://{tenantId}.api.zephr.com variables: tenantId: default: demo description: Your tenant ID. paths: /v3/accounts/{account_id}/users: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/account-users-response' examples: response: value: - user_id: 0123456789ABCD account_id: 0123456789ABCD summary: List account users operationId: Account_Users description: Retrieves all the account users. tags: - Account User parameters: - name: account_id in: path description: Unique Account identifier required: true schema: type: string /v3/accounts/{account_id}/users/{user_id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/account-user' examples: response: value: user_id: 0123456789ABCD account_id: 0123456789ABCD summary: Retrieve an account user operationId: Get_Account_User description: Retrieves an account user. tags: - Account User parameters: - name: account_id in: path description: Unique Account identifier required: true schema: type: string - name: user_id in: path description: Unique User identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete an account user operationId: Delete_Account_User description: Deletes an account user. tags: - Account User parameters: - name: account_id in: path description: Unique Account identifier required: true schema: type: string - name: user_id in: path description: Unique User identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Save an account user operationId: Save_Account_User description: Saves an account user. tags: - Account User parameters: - name: account_id in: path description: Unique Account identifier required: true schema: type: string - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/admin/users: post: responses: '201': description: Created headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-user-response' examples: response: value: user_id: b859f5dd-8184-4d01-8bf9-e3e771f68a62 message: Admin user created successfully uri: >- http://company.com/v3/admin/users/b859f5dd-8184-4d01-8bf9-e3e771f68a62 '400': description: Bad Request headers: {} summary: Create an admin user operationId: Create_Admin_User description: Creates a new admin user. tags: - Admin User requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string validators: type: object properties: password: type: string use_sso: type: boolean description: >- When this is present there should be no identifiers in the body. The user is identified through a `blaize_session` cookie. required: - identifiers example: identifiers: email_address: joe.blow@company.com validators: password: mysecurepassword123 /v3/admin/login: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-user-login-response' examples: response: value: cookie: blaize_admin_session=... message: Login successful '400': description: Bad Request headers: {} '401': description: Unauthorized headers: {} summary: Log in to an admin user account operationId: Login description: Logs in to an admin user account. tags: - Admin User requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string validators: type: object properties: password: type: string use_sso: type: boolean description: >- When this is present there should be no identifiers in the body. The user is identified through a `blaize_session` cookie. required: - identifiers - validators example: identifiers: email_address: joe.blow@company.com validators: password: mysecurepassword123 /v3/admin/logout: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/logout-response' examples: response: value: message: Session deleted summary: Log out of the admin user account operationId: Logout description: Logs out of the admin user account. tags: - Admin User parameters: - name: blaize-admin-session in: header description: e.g. (string) required: false example: (string) schema: type: string /v3/admin/users/{user_id}/keypairs: post: responses: '201': description: Created headers: {} content: application/json: schema: $ref: '#/components/schemas/issue-keypair-response' examples: response: value: access_key: access key... secret_key: secret key... message: >- Keypair created: you will not be able to recover the secret, so take note of it '404': description: Not Found headers: {} summary: Issue a key pair operationId: Issue_Key_Pair description: Issues a new key pair for the admin user. tags: - Admin User parameters: - name: user_id in: path description: Unique User Identifier required: true schema: type: string get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/get-access-key-response' examples: response: value: - access_key: access key... '404': description: Not Found headers: {} summary: List access keys operationId: List_Access_Keys description: Retrieves a list of access keys for the admin user. tags: - Admin User parameters: - name: user_id in: path description: Unique User Identifier required: true schema: type: string /v3/admin/users/{user_id}/keypairs/{access_key}: delete: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/revoke-keypair-response' examples: response: value: message: Keypair revoked '404': description: Not Found headers: {} summary: Revoke a keypair operationId: Revoke_Keypair description: Revokes a keypair. tags: - Admin User parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string - name: access_key in: path description: Access Key identifier required: true schema: type: string /v3/admin/users/{user_id}/roles: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-roles' examples: response: value: - email: admin@company.com role: role... '404': description: Not Found headers: {} summary: List user roles operationId: User_Roles description: Retrieves the user roles an admin user is assigned. tags: - Admin User parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/admin/users/{user_id}/roles/{tenant}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-roles' examples: response: value: - email: admin@company.com role: role... '404': description: Not Found headers: {} summary: List user roles by tenant operationId: User_Tenant_Roles description: Retrieves the admin user's roles by tenant. tags: - Admin User parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string - name: tenant in: path description: Tenant identifier required: true schema: type: string /v3/admin/roles: post: responses: '201': description: Created headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-role-creation-response' examples: response: value: message: Admin role created successfully '400': description: Bad Request headers: {} summary: Create admin user roles operationId: Create_Admin_Role description: Creates admin user roles. tags: - Admin User requestBody: $ref: '#/components/requestBodies/Create_Admin_RoleBody' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/list-admin-roles-response' examples: response: value: - role_id: 0123456789ABCD email: admin@company.com role: role... '404': description: Not Found headers: {} summary: List admin user roles operationId: List_Roles description: Retrieves the admin user roles by tenant. tags: - Admin User /v3/admin/roles/{role_id}: put: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-role-update-response' examples: response: value: message: Admin role updated successfully '400': description: Bad Request headers: {} summary: Update an admin user role operationId: Update_Role description: Updates an admin user role by ID. tags: - Admin User parameters: - name: role_id in: path description: Unique Role identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_Admin_RoleBody' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/list-admin-role-response' examples: response: value: role_id: 0123456789ABCD email: admin@company.com role: role... '404': description: Not Found headers: {} summary: Retrieve an admin user role operationId: Get_Role description: Retrieves an admin user role. tags: - Admin User parameters: - name: role_id in: path description: Unique Role identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-role-deleted-response' examples: response: value: message: Admin role deleted successfully '404': description: Not Found headers: {} summary: Delete an admin user role operationId: Delete_Role description: Deletes an admin user role. tags: - Admin User parameters: - name: role_id in: path description: Unique Role identifier required: true schema: type: string /v3/admin/sessions/{blaize_admin_session_id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/user_identifier' examples: response: value: user_id: 123456789ABCD '404': description: Not Found headers: {} summary: Retrieve an admin user by session ID operationId: Get_Session_User description: Retrieves an admin user by session ID. tags: - Admin User parameters: - name: blaize_admin_session_id in: path description: Admin User Session identifier required: true schema: type: string /v3/users/{user_id}/foreign-key/update/{key}: put: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Upsert the foreign key operationId: Upsert_Foreign_Key description: Upserts the provided foreign key. tags: - Users parameters: - name: user_id in: path description: User Id required: true schema: type: string - name: key in: path description: Foreign key name required: true schema: type: string requestBody: content: application/json: schema: type: object example: foreign key value /v3/bundles: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/bundles' examples: response: value: results: - label: Test bundle description: This is a bundle includes: entitlements: [] meters: [] credits: [] bundles: [] auto_assign: none summary: List Bundles operationId: Bundles description: Retrieves a list of Bundles wrapped in the element "results". tags: - Bundle put: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create Bundles operationId: Create_Bundles description: Creates Bundles. tags: - Bundle requestBody: $ref: '#/components/requestBodies/Create_BundleBody' /v3/bundles/{id}: put: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a Bundle operationId: Create_Bundle description: Creates a Bundle. tags: - Bundle parameters: - name: id in: path description: Unique Bundle identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_BundleBody' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/bundle' examples: response: value: label: Test bundle description: This is a bundle includes: entitlements: [] meters: [] credits: [] bundles: [] auto_assign: none '404': description: Not Found headers: {} summary: Retrieve a Bundle operationId: Get_Bundle description: Retrieves a single Bundle. tags: - Bundle parameters: - name: id in: path description: Unique Bundle identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete Bundle operationId: Delete_Bundle description: Deletes a Bundle. tags: - Bundle parameters: - name: id in: path description: Unique Bundle identifier required: true schema: type: string /v3/cache-configurations: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/cache_configurations_objects' examples: response: value: results: - label: Test conditions: url_pattern: ^/forum header_patterns: Content-Type: ^text/html cache: origin: false decision_points: false summary: List cache configurations operationId: Cache_Configurations_List description: >- Retrieves a list of cache configurations wrapped in the element "results". tags: - Cache Configurations post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a cache configuration operationId: Create_Cache_Configuration description: Creates a Cache Configuration. tags: - Cache Configurations requestBody: $ref: '#/components/requestBodies/Create_Cache_ConfigurationBody' /v3/cache-configurations/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/cache_configurations_object' examples: response: value: label: Test conditions: url_pattern: ^/forum header_patterns: Content-Type: ^text/html cache: origin: false decision_points: false summary: Retrieve a cache configuration operationId: Get_Cache_Configuration description: Retrieves a single cache configuration. tags: - Cache Configurations parameters: - name: id in: path description: Unique Cache Configuration identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a cache configuration operationId: Delete_Cache_Configuration description: Deletes a cache configuration tags: - Cache Configurations parameters: - name: id in: path description: Unique Cache Configuration identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Update a cache configuration operationId: Update_Cache_Configuration description: Updates a cache configuration. tags: - Cache Configurations parameters: - name: id in: path description: Unique Cache Configuration identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_Cache_ConfigurationBody' /v3/cache-management/evict-origin: post: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Evict cached origin requests operationId: Evict_Origin description: >- Evicts all cached origin requests with path matching the supplied regular expression. tags: - Cache Management requestBody: content: application/json: schema: type: object example: 1 line containing valid Java Regular Expression. /v4/cache-management/evict-origin: post: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Evict cached origin requests (V4) operationId: Evict_Origin_V4 description: >- Evicts all cached origin requests with path matching the supplied regular expression. tags: - Cache Management requestBody: content: application/json: schema: type: object example: 1 line containing valid Java Regular Expression. /v3/companies: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/companies' examples: response: value: results: - name: Company name description: Company description website: company.com contact: Company contact account_manager: Company account manager summary: List companies operationId: Companies description: Retrieves a list of companies wrapped in the element "results". tags: - Company post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a company operationId: Create_Company description: Creates a company. tags: - Company requestBody: $ref: '#/components/requestBodies/Create_CompanyBody' /v3/companies/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/company' examples: response: value: name: Company name description: Company description website: company.com contact: Company contact account_manager: Company account manager summary: Retrieve a company operationId: Get_Company description: Retrieves a single company. tags: - Company parameters: - name: id in: path description: Unique Company identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a company operationId: Delete_Company description: Deletes a company. tags: - Company parameters: - name: id in: path description: Unique Company identifier required: true schema: type: string put: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Update a company operationId: Update_Company description: Updates a company. tags: - Company parameters: - name: id in: path description: Unique Company identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_CompanyBody' /v3/configuration: post: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Save the tenant configuration operationId: Save_Configuration description: Creates or updates the tenant configuration. tags: - Configuration requestBody: content: application/json: schema: type: object properties: db.tables.extendedProfiles: type: string db.tables.grants: type: string db.tables.forms: type: string db.tables.features: type: string db.tables.requestRules: type: string db.tables.entitlements: type: string db.tables.formFields: type: string db.tables.companies: type: string db.tables.accounts: type: string db.tables.userSchemaFields: type: string db.tables.users: type: string db.tables.userAttributes: type: string db.tables.accountUsers: type: string db.tables.staticItems: type: string db.tables.webhooks: type: string db.tables.adminUserTenantRoles: type: string db.tables.adminUsers: type: string db.tables.adminKeyPairs: type: string oauth.google.apis.host: type: string oauth.linkedin.clientSecret: type: string oauth.linkedin.apis.host: type: string oauth.google.clientSecret: type: string oauth.google.callbackUri: type: string oauth.linkedin.clientId: type: string oauth.linkedin.callbackUri: type: string oauth.google.clientId: type: string oauth.facebook.callbackUri: type: string oauth.facebook.clientSecret: type: string oauth.facebook.apis.host: type: string oauth.facebook.clientId: type: string cdn.origin: type: string redis.port: type: string elasticsearch.url: type: string aws.region: type: string redis.host: type: string email.from: type: string authentication.password.requireEmailVerfication: type: string example: db.tables.extendedProfiles: value db.tables.grants: value db.tables.forms: value db.tables.features: value db.tables.requestRules: value db.tables.entitlements: value db.tables.formFields: value db.tables.companies: value db.tables.accounts: value db.tables.userSchemaFields: value db.tables.users: value db.tables.userAttributes: value db.tables.accountUsers: value db.tables.staticItems: value db.tables.webhooks: value db.tables.adminUserTenantRoles: value db.tables.adminUsers: value db.tables.adminKeyPairs: value oauth.google.apis.host: value oauth.linkedin.clientSecret: value oauth.linkedin.apis.host: value oauth.google.clientSecret: value oauth.google.callbackUri: value oauth.linkedin.clientId: value oauth.linkedin.callbackUri: value oauth.google.clientId: value oauth.facebook.callbackUri: value oauth.facebook.clientSecret: value oauth.facebook.apis.host: value oauth.facebook.clientId: value cdn.origin: value redis.port: value elasticsearch.url: value aws.region: value redis.host: value email.from: value authentication.password.requireEmailVerfication: value get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/configuration' examples: response: value: db.tables.extendedProfiles: value db.tables.grants: value db.tables.forms: value db.tables.features: value db.tables.requestRules: value db.tables.entitlements: value db.tables.formFields: value db.tables.companies: value db.tables.accounts: value db.tables.userSchemaFields: value db.tables.users: value db.tables.userAttributes: value db.tables.accountUsers: value db.tables.staticItems: value db.tables.webhooks: value db.tables.adminUserTenantRoles: value db.tables.adminUsers: value db.tables.adminKeyPairs: value oauth.google.apis.host: value oauth.linkedin.clientSecret: value oauth.linkedin.apis.host: value oauth.google.clientSecret: value oauth.google.callbackUri: value oauth.linkedin.clientId: value oauth.linkedin.callbackUri: value oauth.google.clientId: value oauth.facebook.callbackUri: value oauth.facebook.clientSecret: value oauth.facebook.apis.host: value oauth.facebook.clientId: value cdn.origin: value redis.port: value elasticsearch.url: value aws.region: value redis.host: value email.from: value authentication.password.requireEmailVerfication: value summary: Retrieve the tenant configuration operationId: Get_Configuration description: Retrieves the tenant configuration. tags: - Configuration /v3/initialize: post: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Install a tenant operationId: Install_tenant description: Installs a tenant in Blaize. tags: - Configuration /v3/certs: post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a cert operationId: Create_Cert description: Creates a cert. tags: - Configuration requestBody: content: application/json: schema: type: object properties: label: type: string private_key: type: string cert: type: string example: label: company.com private_key: private_key... cert: cert... delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a cert operationId: Delete_Cert description: Deletes a cert. tags: - Configuration /v3/credits: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/credits' examples: response: value: results: - label: Test credit description: This is an credit delivers: - ENTITLEMENT_ID unit: views quantity: 5 auto_assign: none summary: List credits operationId: Credits description: Retrieves a list of credits wrapped in the element "results". tags: - Credit post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create Credit operationId: Create_Credits description: Create an Credit tags: - Credit requestBody: $ref: '#/components/requestBodies/Create_CreditBody' /v3/credits/{id}: post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a credit operationId: Create_Credit description: Creates a credit. tags: - Credit parameters: - name: id in: path description: Unique Credit identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_CreditBody' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/credit' examples: response: value: label: Test credit description: This is an credit delivers: - ENTITLEMENT_ID unit: views quantity: 5 auto_assign: none '404': description: Not Found headers: {} summary: Retrieve a credit operationId: Get_Credit description: Retrieves a single credit. tags: - Credit parameters: - name: id in: path description: Unique Credit identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a credit operationId: Delete_Credit description: Deletes a credit. tags: - Credit parameters: - name: id in: path description: Unique Credit identifier required: true schema: type: string /v3/decision-engine: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/access-decision-response' examples: response: value: status: '301' body: Redirecting to login page... headers: Location: /login.html '409': description: Conflict headers: {} summary: Invoke the decision engine operationId: Decision_Engine description: >- Invokes the decision engine. The Blaize Decision Engine can be invoked via the Admin API to calculate an HTTP Response based upon Request-Level Rules created in the Admin Console. This functionality is build into the Blaize Dynamic CDN but the API variant is useful for CMS or edge side integrations. tags: - Decision Engine requestBody: content: application/json: schema: type: object properties: path: type: string http_method: type: string session: type: string foreign_keys: type: object properties: {} description: Foreign system and ID used to identify the user request_headers: type: object properties: User-Agent: type: string content_metadata: type: object properties: publishedDate: type: string jwt: type: string btr: type: string description: 'MD5-hex-encoding of: path + "|" + trusted referrer secret' required: - path example: path: /x.html http_method: POST session: xxx-xxx-xxx foreign_keys: {} request_headers: User-Agent: content_metadata: publishedDate: jwt: xxx-xxx-xxx btr: 17e74b9e49e66282e55d4b7ec73de951 /v4/email-templates: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/email-templates' examples: response: value: results: - templateType: template type slug: email template slug label: Name of the email template subject: Email subject content: Email content default: false summary: List email templates operationId: List_Email_Templates description: Retrieves a list of email templates. tags: - Email Templates /v4/email-templates/{slug}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/email-template' examples: response: value: templateType: template type slug: email template slug label: Name of the email template subject: Email subject content: Email content default: false '404': description: Not Found headers: {} summary: Retrieve an email template operationId: Get_Email_Template description: Retrieves a single email template. tags: - Email Templates parameters: - name: slug in: path description: Slug of the Email template required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete an email template operationId: Delete_Email_Template description: Deletes an email template. tags: - Email Templates parameters: - name: slug in: path description: Slug of the Email template required: true schema: type: string put: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Save an email template operationId: Save_Email_Template description: Saves an email template. tags: - Email Templates parameters: - name: slug in: path description: Slug of the Email template required: true schema: type: string requestBody: content: application/json: schema: type: object properties: templateType: type: string label: type: string subject: type: string content: type: string example: templateType: User Password Reset label: my modified default password reset subject: my modified default Password Reset Subject content:

New content

/v3/entitlements: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/entitlements' examples: response: value: results: - label: Test entitlement description: This is an entitlement auto_assign: none summary: List entitlements operationId: Entitlements description: Retrieves a list of entitlements wrapped in the element "results". tags: - Entitlement post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create entitlements operationId: Create_Entitlements description: Creates entitlements. tags: - Entitlement requestBody: $ref: '#/components/requestBodies/Create_EntitlementBody' /v3/entitlements/{id}: post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create an entitlement operationId: Create_Entitlement description: Creates an entitlement. tags: - Entitlement parameters: - name: id in: path description: Unique Entitlement identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_EntitlementBody' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/entitlement' examples: response: value: label: Test entitlement description: This is an entitlement auto_assign: none '404': description: Not Found headers: {} summary: Retrieve an entitlement operationId: Get_Entitlement description: Retrieves a single entitlement. tags: - Entitlement parameters: - name: id in: path description: Unique Entitlement identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete an entitlement operationId: Delete_Entitlement description: Deletes an entitlement. tags: - Entitlement parameters: - name: id in: path description: Unique Entitlement identifier required: true schema: type: string /v3/feature-rules: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/feature_rules_response' examples: response: value: - id: featureRuleId version: 1 tags: [] label: Test feature description: Test feature last_updated: '2011-11-11T11:11:11.000' summary: List feature rules operationId: Feature_Rules description: Retrieves a list of feature rules. tags: - Feature Rules /v3/feature-rules/{featureRuleId}: delete: responses: '200': description: OK headers: {} content: '*/*': schema: $ref: '#/components/schemas/feature_rule_deletion_response' '404': description: Not Found headers: {} summary: Delete a feature rule operationId: Delete_Feature_Rule description: Deletes a feature rule. tags: - Feature Rules parameters: - name: featureRuleId in: path description: Unique Feature Rule identifier required: true schema: type: string /v3/feature-rules/{featureRuleId}/versions: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/feature_rules_response' examples: response: value: - id: featureRuleId version: 1 tags: [] label: Test feature description: Test feature last_updated: '2011-11-11T11:11:11.000' summary: List the versions of a feature rule operationId: Get_Feature_Rule_Versions description: Retrieves a lists of all the versions for a single feature rule. tags: - Feature Rules parameters: - name: featureRuleId in: path description: Unique Feature Rule identifier required: true schema: type: string post: responses: '200': description: OK headers: {} '201': description: Created headers: {} content: application/json: schema: $ref: '#/components/schemas/feature_rule_creation_response' examples: response: value: message: Feature Rule created successfully uri: http://host/v3/feature-rules/featureRuleId/versions '400': description: Bad Request headers: {} summary: Create a feature rule version operationId: Create_Feature_Rule description: Creates a feature rule version. tags: - Feature Rules parameters: - name: featureRuleId in: path description: Unique Feature Rule identifier required: true schema: type: string requestBody: content: application/json: schema: type: object properties: label: type: string description: type: string requirements_script: type: string action_script: type: string script_type: type: string graph_state: type: string editing_mode: type: string example: label: Test feature description: Test feature requirements_script: return [] action_script: return "this is a test" script_type: javascript graph_state: '{"property1": "value1"}' editing_mode: manual /v3/feature-rules/{featureRuleId}/versions/{versionId}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/feature_rule_version_response' examples: response: value: id: featureRuleId version: 1 tags: [] label: Test feature description: Test feature requirements_script: return [] action_script: return "this is a test" script_type: javascript graph_state: '{"property1": "value1"}' editing_mode: manual last_updated: '2011-11-11T11:11:11.000' summary: Retrieve a feature rule version operationId: Get_Feature_Rule_Version description: Retrieves a version for a single feature rule. tags: - Feature Rules parameters: - name: featureRuleId in: path description: Unique Feature Rule identifier required: true schema: type: string - name: versionId in: path description: Unique Version identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} content: '*/*': schema: $ref: '#/components/schemas/feature_rule_deletion_response' '404': description: Not Found headers: {} summary: Delete a feature rule version operationId: Delete_Feature_Rule_Version description: Deletes a single version of a feature rule. tags: - Feature Rules parameters: - name: featureRuleId in: path description: Unique Feature Rule identifier required: true schema: type: string - name: versionId in: path description: Unique Version identifier required: true schema: type: string /v3/feature-rules/{featureRuleId}/versions/{versionId}/tags: put: responses: '200': description: OK headers: {} '201': description: Created headers: {} content: application/json: schema: $ref: '#/components/schemas/feature_rule_version_tags_update_response' examples: response: value: message: featureRuleId tag/s saved successfully uri: >- http://host/v3/feature-rules/featureRuleId/versions/versionId/tags '400': description: Bad Request headers: {} summary: Save feature rule version tags operationId: Save_Feature_Rule description: Saves the feature rule version tags. tags: - Feature Rules parameters: - name: featureRuleId in: path description: Unique Feature Rule identifier required: true schema: type: string - name: versionId in: path description: Unique Version identifier required: true schema: type: string requestBody: content: application/json: schema: type: array items: {} /v3/forms: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/forms' examples: response: value: results: - title: Test internal-description: This form is for testing public-description: Please provide some info registration: true fields: - slug: first-name placeholder: First name required: true order: 1 summary: List forms operationId: Forms description: Retrieves a list of forms wrapped in the element "results". tags: - Form /v3/forms/{slug}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/form' examples: response: value: title: Test internal-description: This form is for testing public-description: Please provide some info registration: true fields: - slug: first-name placeholder: First name required: true order: 1 summary: Retrieve Form operationId: Get_Form description: Retrieves a single form. tags: - Form parameters: - name: slug in: path description: Unique Form identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a form operationId: Delete_Form description: Deletes a form. tags: - Form parameters: - name: slug in: path description: Unique Form identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Save a form operationId: Save_Form description: Saves a form. tags: - Form parameters: - name: slug in: path description: Unique Form identifier required: true schema: type: string requestBody: content: application/json: schema: type: object properties: title: type: string internal-description: type: string public-description: type: string registration: type: boolean fields: type: array items: $ref: '#/components/schemas/field' example: title: Test internal-description: This form is for testing public-description: Please provide some info registration: true fields: - slug: first-name placeholder: First name required: true order: 1 /v3/gift: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/gifts' examples: response: value: - id: 58c3852bb23f3467 created: '2018-04-27T09:15:28Z' uri: /news/local/story summary: List all the unclaimed gifts operationId: List_All_Unclaimed_Gifts description: 'Lists all the unclaimed gifts.' tags: - Gifts post: responses: '200': description: OK headers: {} content: '*/*': schema: type: object properties: gift: type: string description: 'id: 65c7da04b734a15f (string)' summary: Create a gift operationId: Create_gift description: 'Creates a gift.' tags: - Gifts requestBody: content: application/json: schema: type: object properties: id: type: string description: Gift Id (passed as ?gift parameter in claim link) created: type: string description: UTC timestamp when gift was created claimed: type: string description: UTC timestamp when gift was claimed uri: type: string description: >- 1823.html (string) - Path portion of URL gift will allow access to cross_device_session: type: string description: ID of cross-device session of claiming user (if claimed) example: id: 58c3852bb23f3467 created: '2018-04-27T09:15:28Z' uri: /news/local/story /v3/gift/{giftId}: delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a gift operationId: Delete_Gift description: 'Deletes a gift.' tags: - Gifts parameters: - name: giftId in: path description: '' required: true example: 469efefbe4c4cae0 schema: type: string /v3/users/{userId}/grants: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/grants-response' examples: response: value: results: - grantId: 0123456789ABCD entitlement_type: bundle entitlement_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX startTime: '2022-06-01 00:00:00' endTime: '2022-12-31 23:59:59' product_id: XXXXXXXXXXXXXX summary: List user grants operationId: User_Grants description: Retrieves a list of user grants. tags: - Grants parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a grant operationId: Create_Grants description: Creates a user grant. tags: - Grants parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_GrantBody' /v3/users/{userId}/grants/{grantId}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/grant-response' examples: response: value: grantId: 0123456789ABCD entitlement_type: bundle entitlement_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX startTime: '2022-06-01 00:00:00' endTime: '2022-12-31 23:59:59' product_id: XXXXXXXXXXXXXX summary: Retrieve a grant operationId: Get_Account_Grant description: Retrieves a single grant. tags: - Grants parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string - name: grantId in: path description: Unique Grant identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a grant operationId: Delete_User_Grant description: Deletes a grant. tags: - Grants parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string - name: grantId in: path description: Unique Grant identifier required: true schema: type: string post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create an account grant operationId: Create_Grant description: Creates an account grant. tags: - Grants parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string - name: grantId in: path description: Unique Grant identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_GrantBody' /v3/users/{userId}/accessModel: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/access_model' examples: response: value: meters: {} credits: {} delivered_entitlements: - id: 0123456789ABCD direct: true meteredBy: [] creditedBy: [] '404': description: Not Found headers: {} summary: Retrieve a user access model operationId: User_Access_Model description: Retrieves a user access model. tags: - Grants parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string /v3/accounts/{accountId}/grants: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/grants-response' examples: response: value: results: - grantId: 0123456789ABCD entitlement_type: bundle entitlement_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX startTime: '2022-06-01 00:00:00' endTime: '2022-12-31 23:59:59' product_id: XXXXXXXXXXXXXX summary: List account grants operationId: List_Account_Grants description: Retrieves a list of account grants. tags: - Grants parameters: - name: accountId in: path description: Unique Account identifier required: true schema: type: string post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create an account grant operationId: Create_Account_Grant description: Creates an account grant. tags: - Grants parameters: - name: accountId in: path description: Unique Account identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_GrantBody' /v3/accounts/{accountId}/grants/{grantId}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/grant-response' examples: response: value: grantId: 0123456789ABCD entitlement_type: bundle entitlement_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX startTime: '2022-06-01 00:00:00' endTime: '2022-12-31 23:59:59' product_id: XXXXXXXXXXXXXX summary: Retrieve an account grant operationId: Get_User_Grant description: Retrieves a single account grant. tags: - Grants parameters: - name: accountId in: path description: Unique Account identifier required: true schema: type: string - name: grantId in: path description: Unique Grant identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete an account grant operationId: Delete_Account_Grant description: Deletes an account grant. tags: - Grants parameters: - name: accountId in: path description: Unique Account identifier required: true schema: type: string - name: grantId in: path description: Unique Grant identifier required: true schema: type: string /v3/meters: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/meters' examples: response: value: results: - label: Test meter description: This is a meter unit: views limit: 5 cycle: calendar period: monthly timezone: '+0:00' auto_assign: none summary: List meters operationId: Meters description: Retrieves a list of meters wrapped in the element "results". tags: - Meter post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create Meter operationId: Create_Meters description: Create an Meter tags: - Meter requestBody: $ref: '#/components/requestBodies/Create_MeterBody' /v3/meters/{id}: post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a meter operationId: Create_Meter description: Creates a meter. tags: - Meter parameters: - name: id in: path description: Unique Meter identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Create_MeterBody' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/meter' examples: response: value: label: Test meter description: This is a meter unit: views limit: 5 cycle: calendar period: monthly timezone: '+0:00' auto_assign: none '404': description: Not Found headers: {} summary: Retrieve a meter operationId: Get_Meter description: Retrieves a single meter. tags: - Meter parameters: - name: id in: path description: Unique Meter identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a meter operationId: Delete_Meter description: Deletes a meter. tags: - Meter parameters: - name: id in: path description: Unique Meter identifier required: true schema: type: string /v3/products: get: responses: '200': description: OK headers: {} content: application/json: schema: type: object properties: results: type: array items: $ref: '#/components/schemas/products' examples: response: value: results: - id: one label: One month access description: One month access entitlement: id: gold-bundle type: bundle mapping: braintree_one_off: price_points: - id: ten label: Ten Dollars price: 10 sharingLimit: 0 summary: List products operationId: Products description: Retrieves all configured products. tags: - Products /v3/products/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/product' examples: response: value: id: one label: One month access description: One month access entitlement: id: gold-bundle type: bundle mapping: braintree_one_off: price_points: - id: ten label: Ten Dollars price: 10 sharingLimit: 0 summary: Retrieve a product operationId: Get_Product description: Retrieves a product. tags: - Products parameters: - name: id in: path description: Unique Product identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a product operationId: Delete_Product description: Deletes a product. tags: - Products parameters: - name: id in: path description: Unique Product identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '201': description: Created headers: {} '400': description: Bad Request headers: {} '409': description: Conflict headers: {} summary: Save a product operationId: Save_Product description: Saves a product. tags: - Products parameters: - name: id in: path description: Unique Product identifier required: true schema: type: string requestBody: content: application/json: schema: type: object properties: id: type: string description: month-one-off (string) - `Product Id` label: type: string description: '`Product label`' description: type: string entitlement: type: object properties: id: type: string description: '`Entitlement ID/slug`' type: type: string description: '`Entitlement type (always ''bundle'')`' required: - id - type mapping: type: object properties: {} oneOf: - properties: braintree_one_off: type: object properties: price_points: type: array items: {} - properties: braintree_recurring: type: object properties: plan_id: type: string description: '`Plan Id as configured in Braintree`' sharingLimit: type: number description: >- The number of other users that the purchaser of this product can share the product with. required: - entitlement - mapping - sharingLimit example: id: one label: One month access description: One month access entitlement: id: gold-bundle type: bundle mapping: braintree_one_off: price_points: - id: ten label: Ten Dollars price: 10 sharingLimit: 0 /v3/request-rules: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/request_rules_container_object' examples: response: value: results: - label: Test conditions: url_pattern: ^/forum method: GET requirements_script: return [] action_script: return "this is a test" script_type: javascript graph_state: '{"property1": "value1"}' editing_mode: manual summary: List request rules operationId: Request_Rules_List description: Retrieves a list of request rules wrapped in the element "results". tags: - Request Rules put: responses: '200': description: OK headers: {} '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Save a request rule operationId: Save_Request_Rule description: Saves a request rule. tags: - Request Rules requestBody: content: application/json: schema: type: object properties: label: type: string conditions: type: object properties: url_pattern: type: string method: type: string requirements_script: type: string action_script: type: string script_type: type: string graph_state: type: string editing_mode: type: string example: label: Test conditions: url_pattern: ^/forum method: GET requirements_script: return [] action_script: return "this is a test" script_type: javascript graph_state: '{"property1": "value1"}' editing_mode: manual /v3/request-rules/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/request_rules_object' examples: response: value: label: Test conditions: url_pattern: ^/forum method: GET requirements_script: return [] action_script: return "this is a test" script_type: javascript graph_state: '{"property1": "value1"}' editing_mode: manual summary: Retrieve a request rule operationId: Get_Request_Rule description: Retrieves a request rule. tags: - Request Rules parameters: - name: id in: path description: Unique Request Rule identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a request rule operationId: Delete_Request_Rule description: Deletes a request rule. tags: - Request Rules parameters: - name: id in: path description: Unique Request Rule identifier required: true schema: type: string /v3/sessions: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/session' examples: response: value: expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD '400': description: Bad Request headers: {} summary: Create a session operationId: Create_new_Session description: Creates a new session. tags: - Session requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string validators: type: object properties: password: type: string use_sso: type: boolean description: >- When this is present there should be no identifiers in the body. The user is identified through a `blaize_session` cookie. required: - identifiers - validators example: identifiers: email_address: joe.blow@company.com validators: password: mysecurepassword123 /v3/sessions/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/session-lookup' examples: response: value: session_variables: {} user_id: UU0123456789ABCD sessions: - expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD access_model: meters: [] credits: [] delivered_entitlements: [] summary: Retrieve a session operationId: Get_a_Session description: Looks up a session. tags: - Session parameters: - name: id in: path description: Unique Session identifier required: true schema: type: string /v3/static: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/static_items' examples: response: value: results: - id: 123456789ABCD summary: List static items operationId: Static_Items description: Retrieves a list of static item ids wrapped in the element "results". tags: - Static Items /v3/static/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/static_single_item' examples: response: value: id: 123456789ABCD item: Lorem ipsum... summary: Retrieve a static item operationId: Get_Item description: Retrieves a static item. tags: - Static Items parameters: - name: id in: path description: Unique Static Item identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a static item operationId: Delete_Item description: Deletes a static item. tags: - Static Items parameters: - name: id in: path description: Unique Static Item identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Save a static item operationId: Save_Item description: Saves a static item. tags: - Static Items parameters: - name: id in: path description: Unique Static Item identifier required: true schema: type: string /zephr/oauth2/token: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/oauth2-token-refresh-response' examples: response: value: scope: user.account:read user.profile:read user.profile:update access_token: oa_nj1dfhecrs1jwxi0wd0xk49n token_type: bearer expires_in: 3600 user_id: '1234567890' summary: Refresh a token operationId: Token_Refresh description: >- Provides a new access token with the same scope as the one consented to by the resource owner. tags: - Third Party Authentication requestBody: content: application/json: schema: type: object properties: refresh_token: type: string description: >- can be used to obtain new access tokens without the resource owner intervention grant_type: type: string description: Must be set to `refresh_token` required: - grant_type example: refresh_token: 6kuabo4gug8t9h13x7gt43cm grant_type: refresh_token /zephr/oauth2/token/: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/oauth2-token-exchange-response' examples: response: value: scope: user.account:read user.profile:read user.profile:update access_token: oa_nj1dfhecrs1jwxi0wd0xk49n token_type: bearer expires_in: 3600 refresh_token: 6kuabo4gug8t9h13x7gt43cm user_id: '1234567890' summary: Exchange a token operationId: Token_Exchange description: >- Exchanges the Oauth2 authorization code for an access token that can be used to access user resources like account information and profile. tags: - Third Party Authentication requestBody: content: application/json: schema: type: object properties: code: type: string description: Oauth2 Authorization Code grant_type: type: string description: Must be set to `authorization_code` redirect_uri: type: string description: Client's redirection endpoint. Must be an absolute URI required: - code - grant_type - redirect_uri example: code: '1234567890' grant_type: code redirect_uri: https://someUrl.com/callback /v3/user-export: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/user-export-response-items' examples: response: value: - seq-no: 1 user: identifiers: email_address: joe.blow@company.com attributes: first_name: Joe surname: Blow summary: Export users operationId: User_Export description: Downloads all users. tags: - User Export parameters: - name: attributes in: query description: Whether or not to include core attributes required: true example: 'true' schema: type: boolean - name: appIds in: query description: >- Comma-delimited list of appIds to retrieve extended profile data for. If appIds is present and attributes isn't, only users with matching extended profiles will be returned. required: true example: quiz1,survey4 schema: type: string - name: grants in: query description: Include information about entitlements required: false example: 'true' schema: type: boolean - name: since in: query description: Users who have registered after the specified date required: false example: '2020-01-01T00:00:00Z' schema: type: string /v4/user-export: get: responses: '200': description: OK headers: {} content: text/csv: examples: response: value: '' summary: Export users and user events operationId: User_And_Events_Export_CSV description: | Downloads all subscribers and subscriber events data in csv format. - To download subscribers data, specify the `attributes` query parameter to `true`, and use the `appIds`, `appIdsRestrictive`, `grants`, `since`, `registeredSince`, `registeredBefore`, `foreignKeys` query parameters. - To download subscriber events data, specify the `eventsExport` query parameter to `true`, and use the `from` and `to` query parameters. tags: - User Export parameters: - name: attributes in: query description: Whether or not to include core attributes required: false example: 'true' schema: type: boolean - name: appIds in: query description: >- Comma-delimited list of appIds to retrieve extended profile data for. If appIds is present and attributes isn't, only users with matching extended profiles will be returned. Use `all` to retrieve all extended profile data. required: false example: quiz1,survey4,all schema: type: string - name: appIdsRestrictive in: query description: Only include users with a matching extended profile required: false example: 'true' schema: type: boolean - name: grants in: query description: Include information about entitlements required: false example: 'true' schema: type: boolean - name: since in: query description: Users who have updated after the specified date required: false example: '2020-01-01T00:00:00Z' schema: type: string - name: registeredSince in: query description: Users who have registered after the specified date required: false example: '2020-01-01T00:00:00Z' schema: type: string - name: registeredBefore in: query description: Users who have registered before the specified date required: false example: '2020-01-01T00:00:00Z' schema: type: string - name: foreignKeys in: query description: Include user foreign keys required: false example: 'true' schema: type: boolean - name: eventsExport in: query description: Indicates to export the subscriber events csv file required: false example: '' schema: type: string - name: from in: query description: Subscriber event after the specified date required: false example: '2020-01-01T00:00:00Z' schema: type: string - name: to in: query description: Subscriber event before the specified date required: false example: '2020-01-02T00:00:00Z' schema: type: string /v3/schema/users: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/schemas' examples: response: value: - slug: slug1 label: Test internal-description: This is for testing public-description: Please provide some info required: false decision-point: false validation-expression: test input-type: text select-options: 'null' range-start: 0 range-end: 100 range-step: 5 summary: Retrieve a user schema operationId: User_Schema description: Retrieves a user Schema. tags: - User Schema /v3/schema/users/{slug}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/schema-field' examples: response: value: slug: slug1 label: Test internal-description: This is for testing public-description: Please provide some info required: false decision-point: false validation-expression: test input-type: text select-options: 'null' range-start: 0 range-end: 100 range-step: 5 summary: Retrieve a schema slug operationId: Get_Schema_Slug description: Retrieves a schema slug. tags: - User Schema parameters: - name: slug in: path description: Unique identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} content: '*/*': schema: $ref: '#/components/schemas/schema-field-deletion-response' '404': description: Not Found headers: {} summary: Delete a schema slug operationId: Delete_Schema_Slug description: Deletes a schema slug. tags: - User Schema parameters: - name: slug in: path description: Unique identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '201': description: Created headers: {} content: application/json: schema: $ref: '#/components/schemas/schema-field-creation-response' examples: response: value: message: Field added to user schema successfully uri: http://host/v3/schema/users/slug '400': description: Bad Request headers: {} summary: Save a schema slug operationId: Save_Schema_Slug description: Saves a schema slug. tags: - User Schema parameters: - name: slug in: path description: Unique identifier required: true schema: type: string requestBody: content: application/json: schema: type: object properties: label: type: string internal-description: type: string public-description: type: string required: type: boolean decision-point: type: boolean input-type: type: string example: label: Test internal-description: This is for testing public-description: Please provide some info required: false decision-point: false input-type: text /v3/users: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/users-response' examples: response: value: results: - user_id: 123456789ABCD identifiers: email_address: joe.blow@company.com attributes: first_name: Joe surname: Blow email_verified: true summary: List users operationId: Users_List description: Retrieves a list of users wrapped in the element "results". tags: - Users parameters: - name: identifiers.email_address in: query description: Email address of the user to search for. required: true example: example@example.com schema: type: string - name: foreign_key.xxx in: query description: >- Foreign key of the user to search for. The foreign system is parsed as the remainder of the parameter key name following 'foreign_id.' required: true example: 123abc schema: type: string post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a user operationId: Create_User description: Creates a new user. tags: - Users requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string validators: type: object properties: password: type: string use_sso: type: boolean description: >- When this is present there should be no identifiers in the body. The user is identified through a `blaize_session` cookie. attributes: type: object properties: first_name: type: string surname: type: string required: - identifiers - validators example: identifiers: email_address: joe.blow@company.com validators: password: mysecurepassword123 attributes: first_name: Joe surname: Blow /v3/users/{user_id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/user-response' examples: response: value: user_id: 123456789ABCD identifiers: email_address: joe.blow@company.com attributes: first_name: Joe surname: Blow email_verified: true summary: Retrieve a user operationId: Get_user description: Retrieves a user. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a user operationId: Delete_User description: Deletes a user. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/users/{user_id}/attributes: put: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} '404': description: Not Found headers: {} summary: Update all user attributes operationId: Replace_User_attributes description: >- Replaces a user's attributes. This will replace any existing attributes for the user with the attributes in the payload. To leave existing attributes in place, use PATCH. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Update_User_attributesBody' patch: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} '404': description: Not Found headers: {} summary: Update user attributes operationId: Update_User_attributes description: >- Updates a user's attributes. Any of the user's existing attributes not specified in the payload will be left in-place. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/Update_User_attributesBody' /v4/user-updates: post: responses: '202': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Bulk_User_Update_Response' '400': description: Bad Request headers: {} '403': description: Forbidden headers: {} summary: Update users in bulk operationId: Bulk_User_Update description: | Updates user's attributfoes or delete users on a bulk basis. When setting attributes, any of the user's existing attributes not specified in the payload will be left in-place. tags: - Users requestBody: $ref: '#/components/requestBodies/Bulk_User_Update_Request' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Get_Bulk_User_Update_Jobs_Response' '404': description: Not Found headers: {} summary: List all bulk user update jobs operationId: List_Bulk_User_Update_Jobs description: | Lists all bulk user update jobs. tags: - Users /v4/user-updates/{job_id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Get_Bulk_User_Update_Job_Response' '404': description: Not Found headers: {} summary: Retrieves a bulk user update job operationId: Retrieve_Bulk_User_Update_Job description: | Retrieves the status of a bulk user update job. tags: - Users parameters: - name: job_id in: path description: Id of the job. required: true schema: type: string /v4/users/segments: post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a user segment operationId: Create_User_Segment description: >- Creates a new User Segment. tags: - Users requestBody: $ref: '#/components/requestBodies/Create_User_Segment_Body' get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/User_Segments_Response' summary: List all user segments operationId: List_User_Segment description: >- Lists user segments. tags: - Users /v4/users/segments/{segmentId}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/User_Segment_Response' summary: Retrieve a user segment operationId: Get_User_Segment description: >- Retrieves a user segment. tags: - Users parameters: - name: segmentId in: path description: Unique User Segment Identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} summary: Delete a user segment operationId: Delete_User_Segment description: >- Deletes a user segment by ID. tags: - Users parameters: - name: segmentId in: path description: Unique User Segment Identifier required: true schema: type: string /v4/users/{userId}/segments: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/User_Segments_Response' summary: List user segments for a user operationId: List_User_Segments_for_User description: >- Lists all user segments for a given user. tags: - Users parameters: - name: userId in: path description: Unique User identifier required: true schema: type: string /v3/users/{user_id}/update-email: post: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} '404': description: Not Found headers: {} summary: Start an email address update operationId: Start_email_address_update description: > Starts an email address update. **IMPORTANT**: To update a user email address, first is required to send a POST to request an email to be sent to the user’s new email address with a link for the user to click on so as to verify that he requested this email address change. If the Require Email Verification configuration is set, the verification email will be sent to the current email address. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string requestBody: content: application/json: schema: type: object properties: new_identifiers: type: object properties: email_address: type: string required: - new_identifiers example: new_identifiers: email_address: joe.blow@company.com /v4/users/reset: post: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} '404': description: Not Found headers: {} summary: Start a password reset operationId: Start_password_reset description: > Starts a password reset. **IMPORTANT**: To reset a user password, first is required to send a POST to request an email to be sent to the user’s email with a link for the user to click on so as to verify that he requested this password change. tags: - Users requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string siteSlug: type: string description: | The slug of the site where the user account is registered. required: - identifiers - siteSlug example: identifiers: email_address: joe.blow@company.com siteSlug: demoSite /v3/users/token-exchange: post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Start a passwordless authentication operationId: Passwordless_Authentication description: > Starts a passwordless authentication. **IMPORTANT**: For passwordless authentication, first is required to send a POST to request an email to be sent to the user’s email with a link for the user to click on to verify his email. tags: - Users requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string delivery: type: object properties: method: type: string destination: type: string action: type: string redirect: type: string required: - identifiers - delivery example: identifiers: email_address: joe.blow@company.com delivery: method: email destination: joe.blow@company.com action: login redirect: / /v3/users/{user_id}/session: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/session-lookup' examples: response: value: session_variables: {} user_id: UU0123456789ABCD sessions: - expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD access_model: meters: [] credits: [] delivered_entitlements: [] '404': description: Not Found headers: {} summary: Retrieve a cross-device session operationId: CrossDevice_Session description: Retrieves the user's cross-device session. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/users/{user_id}/sessions: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/sessions' examples: response: value: - expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD '404': description: Not Found headers: {} summary: List user sessions operationId: List_User_Sessions description: Retrieves a list of the user's sessions. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/users/{user_id}/accounts: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/account-users' examples: response: value: results: - user_id: 0123456789ABCD account_id: 0123456789ABCD '404': description: Not Found headers: {} summary: List user accounts operationId: User_Accounts description: Retrieves a list of the user's accounts. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/users/{user_id}/authorization/refresh: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/access_model' examples: response: value: meters: {} credits: {} delivered_entitlements: - id: 0123456789ABCD direct: true meteredBy: [] creditedBy: [] '404': description: Not Found headers: {} summary: Refresh a access model operationId: Refresh_Access_Model description: Refreshes the user's access model. tags: - Users parameters: - name: user_id in: path description: Unique User identifier required: true schema: type: string /v3/users/{user_Id}/legacyPassword: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/admin-user-response' examples: response: value: message: >- Legacy Password updated successfully to be used instead of password user_id: '{userId}' uri: http://localhost:8080/v3/users/{userId}/legacyPassword '404': description: Not Found headers: {} summary: Reset a legacy password operationId: Reset_Legacy_Password description: >- Sets the current password to an empty string, also sets the legacy password to the provided string. tags: - Users parameters: - name: user_Id in: path description: Unique User identifier required: true schema: type: string /v4/sessions/{site}: post: responses: '201': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/session' examples: response: value: expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD '400': description: Bad Request headers: {} '401': description: Unauthorized headers: {} '404': description: Not Found headers: {} summary: Create a new session under a given site operationId: Create_new_session_under_a_given_site description: Creates a new session under a given site. tags: - V4 Session parameters: - name: site in: path description: The site ID required: true schema: type: string requestBody: content: application/json: schema: type: object properties: identifiers: type: object properties: email_address: type: string validators: type: object properties: password: type: string use_sso: type: boolean description: >- When this is present there should be no identifiers in the body. The user is identified through a `blaize_session` cookie. required: - identifiers - validators example: identifiers: email_address: joe.blow@company.com validators: password: mysecurepassword123 /v4/sessions/{site}/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/session-lookup' examples: response: value: session_variables: {} user_id: UU0123456789ABCD sessions: - expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD access_model: meters: [] credits: [] delivered_entitlements: [] '401': description: Unauthorized headers: {} '404': description: Not Found headers: {} summary: Look up a session under a given site operationId: Lookup_session_under_given_site description: Looks up a session under a given sites. tags: - V4 Session parameters: - name: site in: path description: The site ID required: true schema: type: string - name: id in: path description: Unique session identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '401': description: Unauthorized headers: {} '404': description: Not Found headers: {} summary: Delete a session under a given site operationId: Delete_session_under_given_site description: Deletes a session under a given site. tags: - V4 Session parameters: - name: site in: path description: The site ID required: true schema: type: string - name: id in: path description: Unique session identifier required: true schema: type: string /v4/anonymous-sessions/{site}: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/session' examples: response: value: expiryDate: 2018-11-15 14:29 PM UTC startDate: 2017-11-15 14:29 PM UTC authenticated: true session_id: SS0123456789ABCD user_id: UU0123456789ABCD '401': description: Unauthorized headers: {} summary: Create an anonymous session under a given site operationId: Create_anonymous_session_under_given_site description: Creates an anonymous session under a given site. tags: - V4 Session parameters: - name: site in: path description: The site ID required: true schema: type: string /v3/webhooks: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/webhook-responses-container' examples: response: value: results: - webhook_id: 01234567890ABCD label: Test webhook triggers: - user.create - user.delete method: POST target: http://localhost:9999 summary: List webhooks operationId: Webhooks description: Retrieves a list of webhooks wrapped in the element "results". tags: - Webhook post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create a webhook operationId: Create_Webhook description: Creates a Webhook. tags: - Webhook requestBody: content: application/json: schema: type: object properties: label: type: string triggers: type: array items: {} method: type: string target: type: string example: label: Test webhook triggers: - user.create - user.delete method: POST target: http://localhost:9999 /v3/webhooks/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/webhooks-responses' examples: response: value: webhook_id: 01234567890ABCD label: Test webhook triggers: - user.create - user.delete method: POST target: http://localhost:9999 summary: Retrieve a webhook operationId: Get_Webhook description: Retrieves a webhook. tags: - Webhook parameters: - name: id in: path description: Unique Webhook identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete a webhook operationId: Delete_Webhook description: Deletes a webhook. tags: - Webhook parameters: - name: id in: path description: Unique Webhook identifier required: true schema: type: string put: responses: '200': description: OK headers: {} '400': description: Bad Request headers: {} summary: Update a webhook operationId: Update_Webhook description: Updates a webhook. tags: - Webhook parameters: - name: id in: path description: Unique Webhook identifier required: true schema: type: string requestBody: content: application/json: schema: type: object properties: webhook_id: type: string label: type: string triggers: type: array items: {} method: type: string target: type: string example: webhook_id: 01234567890ABCD label: Test webhook triggers: - user.create - user.delete method: POST target: http://localhost:9999 /v3/accounts: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/account_bodies' examples: response: value: results: - company_id: 123456789ABCD name: Account name number_of_seats: 5 allow_oversubscription: true notify_when_account_oversubscribed: true notify_on_each_registration_when_account_is_oversubscribed: true registration_code: Registration code on_premises_ips: 125.124.143.24 premises_tags: '["gold-tier", "university"]' session_limit: 10 session_limit_behaviour: PREVENT_LOGIN summary: List accounts operationId: Accounts description: Retrieves a list of accounts wrapped in the element "results". tags: - Account post: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Create an account operationId: Create_Account description: Creates an account. tags: - Account requestBody: description: Description required: true content: application/json: schema: $ref: '#/components/schemas/Create_AccountBody' /v3/accounts/{id}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/response_accountbody' examples: response: value: company_id: 123456789ABCD name: Account name number_of_seats: 5 allow_oversubscription: true notify_when_account_oversubscribed: true notify_on_each_registration_when_account_is_oversubscribed: true registration_code: Registration code on_premises_ips: 125.124.143.24 premises_tags: '["gold-tier", "university"]' session_limit: 10 session_limit_behaviour: PREVENT_LOGIN summary: Retrieve an account operationId: Get_Account description: Retrieves an account. tags: - Account parameters: - name: id in: path description: Unique Account identifier required: true schema: type: string delete: responses: '200': description: OK headers: {} '404': description: Not Found headers: {} summary: Delete an account operationId: Delete_Account description: Deletes an account. tags: - Account parameters: - name: id in: path description: Unique Account identifier required: true schema: type: string put: responses: '201': description: Created headers: {} '400': description: Bad Request headers: {} summary: Update an account operationId: Update_Account description: Updates an account. tags: - Account parameters: - name: id in: path description: Unique Account identifier required: true schema: type: string requestBody: description: Description required: true content: application/json: schema: $ref: '#/components/schemas/Create_AccountBody' /zephr/integration/promo-codes/v1/redemptions: post: responses: "200": description: OK headers: { } content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/promo-code-redemption-result" summary: Process promo code redemptions operationId: ProcessPromoCodeRedemptions description: | Redeem promo codes that are configured from the Zephr console. Responds with a list of redemption results for each promo code. tags: - Dynamic Offer Promo code redemption requestBody: content: application/json: schema: type: object properties: promo_codes: type: array description: A list of promo codes that can be redeemed. items: type: string components: schemas: account-users-response: type: array items: $ref: '#/components/schemas/account-user' account-user: type: object properties: user_id: type: string example: 0123456789ABCD account_id: type: string example: 0123456789ABCD admin-user-response: type: object properties: user_id: type: string example: b859f5dd-8184-4d01-8bf9-e3e771f68a62 message: type: string example: Admin user created successfully uri: type: string example: >- http://company.com/v3/admin/users/b859f5dd-8184-4d01-8bf9-e3e771f68a62 admin-user-login-response: type: object properties: cookie: type: string example: blaize_admin_session=... message: type: string example: Login successful logout-response: type: object properties: message: type: string example: Session deleted access-key: type: object properties: access_key: type: string example: access key... keypair-response: type: object properties: secret_key: type: string example: secret key... message: type: string example: >- Keypair created: you will not be able to recover the secret, so take note of it issue-keypair-response: type: object properties: secret_key: type: string example: secret key... message: type: string example: >- Keypair created: you will not be able to recover the secret, so take note of it access_key: type: string example: access key... get-access-key-response: type: array items: $ref: '#/components/schemas/access-key' revoke-keypair-response: type: object properties: message: type: string example: Keypair revoked admin-role: type: object properties: email: type: string example: admin@company.com role: type: string example: role... admin-roles: type: array items: $ref: '#/components/schemas/admin-role' admin-role-creation-response: type: object properties: message: type: string example: Admin role created successfully list-admin-role-response: type: object properties: email: type: string example: admin@company.com role: type: string example: role... role_id: type: string list-admin-roles-response: type: array items: $ref: '#/components/schemas/list-admin-role-response' admin-role-update-response: type: object properties: message: type: string example: Admin role updated successfully admin-role-deleted-response: type: object properties: message: type: string example: Admin role deleted successfully user_identifier: type: object properties: user_id: type: string example: 123456789ABCD entitlement: type: object properties: label: type: string example: Test entitlement description: type: string example: This is an entitlement auto_assign: type: string example: none includes: type: object properties: entitlements: type: array items: {} meters: type: array items: {} credits: type: array items: {} bundles: type: array items: {} bundle: type: object properties: label: type: string example: Test bundle description: type: string example: This is a bundle includes: $ref: '#/components/schemas/includes' auto_assign: type: string example: none bundles: type: object properties: results: type: array items: $ref: '#/components/schemas/bundle' cache_configurations_objects: type: object properties: results: type: array items: $ref: '#/components/schemas/cache_configurations_object' cache_configurations_object: type: object properties: label: type: string example: Test conditions: $ref: '#/components/schemas/conditions' cache: $ref: '#/components/schemas/cache' conditions: type: object properties: url_pattern: type: string example: ^/forum header_patterns: $ref: '#/components/schemas/header_patterns' header_patterns: type: object properties: Content-Type: type: string example: ^text/html cache: type: object properties: origin: type: boolean decision_points: type: boolean companies: type: array items: $ref: '#/components/schemas/company' company: type: object properties: name: type: string example: Company name description: type: string example: Company description website: type: string example: company.com contact: type: string example: Company contact account_manager: type: string example: Company account manager configuration: type: object properties: db.tables.extendedProfiles: type: string example: value db.tables.grants: type: string example: value db.tables.forms: type: string example: value db.tables.features: type: string example: value db.tables.requestRules: type: string example: value db.tables.entitlements: type: string example: value db.tables.formFields: type: string example: value db.tables.companies: type: string example: value db.tables.accounts: type: string example: value db.tables.userSchemaFields: type: string example: value db.tables.users: type: string example: value db.tables.userAttributes: type: string example: value db.tables.accountUsers: type: string example: value db.tables.staticItems: type: string example: value db.tables.webhooks: type: string example: value db.tables.adminUserTenantRoles: type: string example: value db.tables.adminUsers: type: string example: value db.tables.adminKeyPairs: type: string example: value oauth.google.apis.host: type: string example: value oauth.linkedin.clientSecret: type: string example: value oauth.linkedin.apis.host: type: string example: value oauth.google.clientSecret: type: string example: value oauth.google.callbackUri: type: string example: value oauth.linkedin.clientId: type: string example: value oauth.linkedin.callbackUri: type: string example: value oauth.google.clientId: type: string example: value oauth.facebook.callbackUri: type: string example: value oauth.facebook.clientSecret: type: string example: value oauth.facebook.apis.host: type: string example: value oauth.facebook.clientId: type: string example: value cdn.origin: type: string example: value redis.port: type: string example: value elasticsearch.url: type: string example: value aws.region: type: string example: value redis.host: type: string example: value email.from: type: string example: value authentication.password.requireEmailVerfication: type: string example: value credits: type: array items: $ref: '#/components/schemas/credit' credit: type: object properties: label: type: string example: Test credit description: type: string example: This is an credit delivers: type: array items: {} unit: type: string example: views quantity: type: number example: 5 auto_assign: type: string example: none headers: type: object properties: Location: type: string example: /login.html access-decision-response: type: object properties: status: type: string example: '301' body: type: string example: Redirecting to login page... headers: $ref: '#/components/schemas/headers' email-templates: type: array items: $ref: '#/components/schemas/email-template' email-template: type: object properties: templateType: type: string example: template type description: >- The template type. Supported types: User Password Reset, User Email Update, User Email Verification, User Complete Registration, User Passwordless Authentication, User Oversubscription Notification, User 2FA Authentication, User 2FA Password Reset, User Email Update Interstitial, Pages User Email Update, Pages User Password Reset, Admin User 2FA Authentication, Admin User Role, Admin User Password Reset slug: type: string example: email template slug description: >- It can be one of the default email template slugs provided or a custom one. Default email template slugs provided: password-reset-email, user-update-email, verify-email-address, complete-user-registration, passwordless-authentication-email, user-oversubscription-notification, two-factor-authentication-email, password-reset-email-2fa, user-interstitial-update-email, pages-user-email-update-otp-email-template, pages-password-reset-email, admin-user-2fa-email-template, v4-admin-user-role-assigned-email, v4-admin-user-password-reset-email. label: type: string example: Name of the email template description: Name of the email template subject: type: string example: Email subject description: The subject on the email content: type: string example: Email content description: The content of the email default: type: boolean description: Whether is one of the default email templates entitlements: type: array items: $ref: '#/components/schemas/entitlement' feature_rules_response: type: array items: $ref: '#/components/schemas/feature_rule_response' feature_rule_response: type: object properties: id: type: string example: featureRuleId version: type: number example: 1 tags: type: array items: {} label: type: string example: Test feature description: type: string example: Test feature last_updated: type: string example: '2011-11-11T11:11:11.000' feature_rule_version_response: type: object properties: id: type: string example: featureRuleId version: type: number example: 1 tags: type: array items: {} label: type: string example: Test feature description: type: string example: Test feature requirements_script: type: string example: return [] action_script: type: string example: return "this is a test" script_type: type: string example: javascript graph_state: type: string example: '{"property1": "value1"}' editing_mode: type: string example: manual last_updated: type: string example: '2011-11-11T11:11:11.000' feature_rule_deletion_response: type: object properties: message: type: string example: featureRuleId deleted successfully feature_rule_creation_response: type: object properties: message: type: string example: Feature Rule created successfully feature_rule_version_tags_update_response: type: object properties: message: type: string example: featureRuleId tag/s saved successfully uri: type: string example: http://host/v3/feature-rules/featureRuleId/versions/versionId/tags forms: type: array items: $ref: '#/components/schemas/form' form: type: object properties: title: type: string example: Test internal-description: type: string example: This form is for testing public-description: type: string example: Please provide some info registration: type: boolean example: true fields: type: array items: $ref: '#/components/schemas/field' field: type: object properties: slug: type: string example: first-name placeholder: type: string example: first-name required: type: boolean example: true order: type: number example: 1 gifts: type: array items: $ref: '#/components/schemas/gift' gift: type: object properties: id: type: string example: 58c3852bb23f3467 description: Gift Id (passed as ?gift parameter in claim link) created: type: string example: '2018-04-27T09:15:28Z' description: UTC timestamp when gift was created claimed: type: string description: UTC timestamp when gift was claimed uri: type: string example: /news/local/story description: 1823.html (string) - Path portion of URL gift will allow access to cross_device_session: type: string description: ID of cross-device session of claiming user (if claimed) grants-response: type: object properties: results: type: array items: $ref: '#/components/schemas/grant-response' grant-response: type: object required: - entitlement_type - entitlement_id - product_id properties: grantId: type: string example: 0123456789ABCD entitlement_type: type: string enum: - bundle - entitlement - meter - credits description: An enum describing the type of the entitlement. entitlement_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX startTime: type: string example: '2022-06-01 00:00:00' endTime: type: string example: '2022-12-31 23:59:59' product_id: type: string example: XXXXXXXXXXXXXX access_model: type: object properties: meters: type: array items: {} credits: type: array items: {} delivered_entitlements: type: array items: $ref: '#/components/schemas/delivered_entitlement' delivered_entitlement: type: object properties: id: type: string example: 0123456789ABCD direct: type: boolean example: true meteredBy: type: array items: {} creditedBy: type: array items: {} meters: type: object properties: results: type: array items: $ref: '#/components/schemas/meter' meter: type: object properties: label: type: string example: Test meter description: type: string example: This is a meter unit: type: string example: views limit: type: number example: 5 cycle: type: string example: calendar period: type: string example: monthly timezone: type: string example: '+0:00' auto_assign: type: string example: none products: type: array items: $ref: '#/components/schemas/product' product: type: object required: - entitlement - mapping - sharingLimit properties: id: type: string example: one description: month-one-off (string) - `Product Id` label: type: string example: One month access description: '`Product label`' description: type: string example: One month access entitlement: $ref: '#/components/schemas/product.entitlement' mapping: $ref: '#/components/schemas/product.mapping' sharingLimit: type: number description: >- The number of other users that the purchaser of this product can share the product with. product.entitlement: type: object required: - id - type properties: id: type: string example: gold-bundle description: '`Entitlement ID/slug`' type: type: string example: bundle description: '`Entitlement type (always ''bundle'')`' product.mapping: type: object properties: {} request_rules_container_object: type: object properties: results: type: array items: $ref: '#/components/schemas/request_rules_object' request_rules_object: type: object properties: label: type: string example: Test conditions: $ref: '#/components/schemas/request_rules_conditions' requirements_script: type: string example: return [] action_script: type: string example: return "this is a test" script_type: type: string example: javascript graph_state: type: string example: '{"property1": "value1"}' editing_mode: type: string example: manual request_rules_conditions: type: object properties: url_pattern: type: string example: ^/forum method: type: string example: GET session: type: object properties: expiryDate: type: string example: 2018-11-15 14:29 PM UTC startDate: type: string example: 2017-11-15 14:29 PM UTC authenticated: type: boolean example: true session_id: type: string example: SS0123456789ABCD user_id: type: string example: UU0123456789ABCD session-lookup: type: object properties: session_variables: $ref: '#/components/schemas/session_variables' user_id: type: string example: UU0123456789ABCD sessions: type: array items: {} access_model: $ref: '#/components/schemas/access_model' session_variables: type: object properties: {} static_items: type: object properties: results: type: array items: $ref: '#/components/schemas/static_item' static_item: type: object properties: id: type: string example: 123456789ABCD static_single_item: type: object properties: id: type: string example: 123456789ABCD item: type: string example: {} oauth2-token-refresh-response: type: object properties: scope: type: string example: user.account:read user.profile:read user.profile:update description: >- The scope of the access request. Supported scopes: user.account:read, user.profile:read and user.profile:update access_token: type: string example: oa_nj1dfhecrs1jwxi0wd0xk49n description: >- The access token that can be used to obtain account and profile information token_type: type: string example: bearer description: >- Token type to be used in the Authorization header when requesting the resource's owner information expires_in: type: number example: 3600 description: The lifetime in seconds of the access token user_id: type: string example: '1234567890' description: Zephr user identifier oauth2-token-exchange-response: type: object properties: scope: type: string example: user.account:read user.profile:read user.profile:update description: >- The scope of the access request. Supported scopes: user.account:read, user.profile:read and user.profile:update access_token: type: string example: oa_nj1dfhecrs1jwxi0wd0xk49n description: >- The access token that can be used to obtain account and profile information token_type: type: string example: bearer description: >- Token type to be used in the Authorization header when requesting the resource's owner information expires_in: type: number example: 3600 description: The lifetime in seconds of the access token refresh_token: type: string example: 6kuabo4gug8t9h13x7gt43cm user_id: type: string example: '1234567890' description: Zephr user identifier user-export-response-items: type: array items: $ref: '#/components/schemas/user-export-response-item' user-export-response-item: type: object required: - user properties: seq-no: type: number example: 1 user: $ref: '#/components/schemas/user-export-user' user-export-user: type: object required: - identifiers properties: identifiers: $ref: '#/components/schemas/identifiers' attributes: $ref: '#/components/schemas/attributes' identifiers: type: object properties: email_address: type: string example: joe.blow@company.com attributes: type: object properties: first_name: type: string example: Joe surname: type: string example: Blow schema-field: type: object properties: slug: type: string example: slug1 label: type: string example: Test internal-description: type: string example: This is for testing public-description: type: string example: Please provide some info required: type: boolean decision-point: type: boolean validation-expression: type: string example: test input-type: type: string example: text select-options: type: string example: 'null' range-start: type: number range-end: type: number example: 100 range-step: type: number example: 5 schemas: type: array items: $ref: '#/components/schemas/schema-field' schema-field-deletion-response: type: object properties: message: type: string example: Field removed from schema successfully schema-field-creation-response: type: object properties: message: type: string example: Field added to user schema successfully uri: type: string example: http://host/v3/schema/users/slug user-response: type: object properties: user_id: type: string example: 123456789ABCD identifiers: $ref: '#/components/schemas/identifiers' attributes: $ref: '#/components/schemas/attributes' email_verified: type: boolean example: true users-response: type: object properties: results: type: array items: $ref: '#/components/schemas/user-response' sessions: type: array items: $ref: '#/components/schemas/session' account-users: type: object properties: results: type: array items: $ref: '#/components/schemas/account-user' webhook-response: type: object properties: webhook_id: type: string example: 01234567890ABCD webhook-request: type: object properties: label: type: string example: Test webhook triggers: type: array items: {} method: type: string example: POST target: type: string example: http://localhost:9999 webhooks-responses: type: object properties: webhook-response: $ref: '#/components/schemas/webhook-response' webhook-request: $ref: '#/components/schemas/webhook-request' webhook-responses-container: type: object properties: results: type: array items: $ref: '#/components/schemas/webhooks-responses' Create_AccountBody: type: object properties: company_id: type: string name: type: string number_of_seats: type: number allow_oversubscription: type: boolean notify_when_account_oversubscribed: type: boolean notify_on_each_registration_when_account_is_oversubscribed: type: boolean registration_code: type: string on_premises_ips: type: string description: >- A list of newline-separated IP addresses or CIDR blocks that identify the premises associated with this account premises_tags: type: string description: >- (string) A JSON array of strings of 'tags'. Tags can be used to identify and group accounts to drive behaviour in the Zephr decision engine session_limit: type: number description: >- The maximum number of concurrent sessions that users of this account can have. If unspecified, the system default value is used. If a user belongs to multiple accounts, the highest limit is used. session_limit_behaviour: type: string description: >- One of "PREVENT_LOGIN" or "DELETE_OLDEST_SESSIONS". Specifies the behaviour when a user of this account exceeds the configured limit of concurrent sessions. example: company_id: 123456789ABCD name: Account name number_of_seats: 5 allow_oversubscription: true notify_when_account_oversubscribed: true notify_on_each_registration_when_account_is_oversubscribed: true registration_code: Registration code on_premises_ips: 125.124.143.24 premises_tags: '["gold-tier", "university"]' session_limit: 10 session_limit_behaviour: PREVENT_LOGIN response_accountbody: type: object properties: company_id: type: string name: type: string number_of_seats: type: number allow_oversubscription: type: boolean notify_when_account_oversubscribed: type: boolean notify_on_each_registration_when_account_is_oversubscribed: type: boolean registration_code: type: string on_premises_ips: type: string description: >- A list of newline-separated IP addresses or CIDR blocks that identify the premises associated with this account premises_tags: type: string description: >- (string) A JSON array of strings of 'tags'. Tags can be used to identify and group accounts to drive behaviour in the Zephr decision engine session_limit: type: number description: >- The maximum number of concurrent sessions that users of this account can have. If unspecified, the system default value is used. If a user belongs to multiple accounts, the highest limit is used. session_limit_behaviour: type: string description: >- One of "PREVENT_LOGIN" or "DELETE_OLDEST_SESSIONS". Specifies the behaviour when a user of this account exceeds the configured limit of concurrent sessions. account_bodies: type: object properties: items: type: array items: $ref: '#/components/schemas/response_accountbody' User_Segments_Response: type: object properties: items: type: array items: $ref: '#/components/schemas/User_Segment_Response' User_Segment_Response: type: object properties: id: type: string description: The User Segment id. label: type: string description: The User Segment label. description: type: string description: The User Segment description. active: description: The User Segment active status. type: boolean archived: type: boolean description: The User Segment archive status. Bulk_User_Update_Response: type: object properties: message: type: string description: Returned message indicating the status of the operation. job_id: type: string description: Id of the job. Get_Bulk_User_Update_Job_Response: type: object properties: jobId: type: string status: type: string jobDate: type: string succeeded: type: number errors: type: number total: type: number details: type: object description: | Lists details of each update job, including Id or foreign key, job status, and returned message. Get_Bulk_User_Update_Jobs_Item: type: object properties: jobId: type: string status: type: string jobDate: type: string succeeded: type: number errors: type: number total: type: number Get_Bulk_User_Update_Jobs_Response: type: array items: $ref: '#/components/schemas/Get_Bulk_User_Update_Jobs_Item' bulk_update_object: type: object properties: identifier: type: object description: | Identifier of the user. User either the User ID or Foreign Key. properties: user_id: type: string description: | Unique Id of the user. foreign_keys: type: object description: Foreign key object. properties: foreign-system: type: string description: | The foreign key of the user. actions: type: array description: | The actions to be taken for the user. Available actions are attribute update and user deletion. items: $ref: "#/components/schemas/bulk_update_object_action_object" bulk_update_object_action_object: type: object properties: type: type: string description: | The user update action to be taken. enum: - delete-user - set-attribute attribute: type: object description: | Details of the attribute update. properties: field: type: string description: | The slug of the attribute. value: type: string description: | The updated value of the attribute. required: - field - value promo-code-redemption-result: type: object properties: promoCode: type: string description: The promo code of the redemption result. success: type: boolean description: Displays whether the promo code was successfully redeemed. errorMessage: type: string nullable: true description: Displays the reason for the failure of the promo code redemption, if the attempt was unsuccessful. requestBodies: Create_Admin_RoleBody: content: application/json: schema: type: object properties: email: type: string role: type: string required: - email - role example: email: admin@company.com role: role... Create_BundleBody: content: application/json: schema: type: object properties: label: type: string description: type: string includes: type: object properties: entitlements: {} meters: {} credits: {} bundles: {} auto_assign: type: string example: label: Test bundle description: This is a bundle includes: entitlements: [] meters: [] credits: [] bundles: [] auto_assign: none Create_Cache_ConfigurationBody: content: application/json: schema: type: object properties: label: type: string conditions: type: object properties: url_pattern: type: string header_patterns: type: object properties: Content-Type: type: string cache: type: object properties: origin: type: boolean decision_points: type: boolean example: label: Test conditions: url_pattern: ^/forum header_patterns: Content-Type: ^text/html cache: origin: false decision_points: false Create_CompanyBody: content: application/json: schema: type: object properties: name: type: string description: type: string website: type: string contact: type: string account_manager: type: string example: name: Company name description: Company description website: company.com contact: Company contact account_manager: Company account manager Create_CreditBody: content: application/json: schema: type: object properties: label: type: string description: type: string delivers: type: array items: {} unit: type: string quantity: type: number auto_assign: type: string example: label: Test credit description: This is an credit delivers: - ENTITLEMENT_ID unit: views quantity: 5 auto_assign: none Create_EntitlementBody: content: application/json: schema: type: object properties: label: type: string description: type: string auto_assign: type: string example: label: Test entitlement description: This is an entitlement auto_assign: none Create_GrantBody: content: application/json: schema: type: object properties: entitlement_type: type: string enum: - bundle - entitlement - meter - credits description: An enum describing the type of the entitlement. entitlement_id: type: string startTime: type: string endTime: type: string product_id: type: string required: - entitlement_type - entitlement_id - product_id example: entitlement_type: bundle entitlement_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX startTime: '2022-06-01 00:00:00' endTime: '2022-12-31 23:59:59' product_id: XXXXXXXXXXXXXX Create_MeterBody: content: application/json: schema: type: object properties: label: type: string description: type: string unit: type: string limit: type: number cycle: type: string period: type: string timezone: type: string auto_assign: type: string example: label: Test meter description: This is a meter unit: views limit: 5 cycle: calendar period: monthly timezone: '+0:00' auto_assign: none Update_User_attributesBody: content: application/json: schema: type: object properties: first_name: type: string surname: type: string example: first_name: Joe surname: Blow Create_User_Segment_Body: content: application/json: schema: type: object properties: label: type: string description: The User Segment name. description: type: string description: The User Segment description. required: - label Bulk_User_Update_Request: content: application/json: example: { "updates": [ { "identifier": { "user_id": "string" }, "actions": [ { "type": "set-attribute", "attribute": { "field": "string", "value": "string" } } ] }, { "identifier": { "foreign_key": { "foreign-system": "string" } }, "actions": [ { "type": "delete-user" } ] } ] } schema: type: object properties: updates: type: array description: | Array of combination of identifier and actions. items: $ref: "#/components/schemas/bulk_update_object"