openapi: 3.2.0 info: title: Keap Settings API description: Keap Public API Documentation termsOfService: https://www.thryv.com/terms-of-use contact: name: Keap url: https://developer.keap.com/get-support email: api.keap@thryv.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: v2 servers: - url: https://api.infusionsoft.com/crm security: - oauth2: [] tags: - name: Settings paths: /rest/v2/settings/contactOptionTypes: get: tags: - Settings summary: Get Contact Option types description: Gets a list of Contact Option types. operationId: getContactOptionTypes responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetContactOptionTypesResponse' /rest/v2/settings/applications:isEnabled: get: tags: - Settings summary: Get Application Status description: Check if the application is enabled or not operationId: isApplicationEnabled responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetApplicationEnabledStatusResponse' /rest/v2/settings/applications:getConfiguration: get: tags: - Settings summary: Get Application Configuration description: Get configuration values for the application instance. operationId: getApplicationConfigurations parameters: - name: fields in: query description: By default, only application data is returned. In addition to that, data is returned for the fields that are mentioned in the query. required: false schema: type: array items: type: string enum: - AFFILIATE - APPOINTMENT - CONTACT - ECOMMERCE - EMAIL - FORMS - FULFILLMENT - INVOICE - NOTE - OPPORTUNITY - TASK - TEMPLATE uniqueItems: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSettingsResponse' components: schemas: ApplicationConfigurationModuleEcommerce: type: object properties: currency: type: string default_country: type: string default_merchant: type: string credit_card_types: type: string default_tax: type: string payment_types: type: string default_to_auto_charge: type: boolean default_charge_max_retry_attempts: type: integer format: int32 default_number_of_days_between_charge_attempts: type: integer format: int32 merchant_account_max_retry_attempts: type: integer format: int32 promo_codes: type: string track_cost_per_unit: type: boolean track_inventory: type: boolean GetContactOptionTypesResponse: type: object properties: option_types: type: array items: type: string ErrorDetails: type: object properties: domain: type: string resource: type: string ApplicationConfigurationModuleContactAddressLabels: type: object properties: line_1: type: string line_2: type: string line_3: type: string ApplicationConfigurationModuleTemplate: type: object properties: default_country_code: type: integer format: int32 default_user_id: type: string ApplicationConfigurationModuleApplication: type: object properties: company: $ref: '#/components/schemas/ApplicationCompany' time_zone: type: string default_view_locale: type: string features_enabled: $ref: '#/components/schemas/ApplicationFeaturesEnabled' ApplicationConfigurationModuleOpportunityStatesLoss: type: object properties: reasons: type: string stage: type: string ApplicationConfigurationModuleForms: type: object properties: spam_filters_enabled: type: boolean ApplicationConfigurationModuleAffiliate: type: object properties: commission: $ref: '#/components/schemas/ApplicationConfigurationModuleAffiliateCommission' choose_affiliate: type: boolean custom_affiliate_url: type: string display_affiliate_ip_address: type: boolean do_not_notify_affiliate: type: boolean use_referral_history_if_no_tracking_cookie: type: boolean skip_pay_if_unused: type: boolean ApplicationConfigurationModuleOpportunityStates: type: object properties: active: $ref: '#/components/schemas/ApplicationConfigurationModuleOpportunityStatesActive' win: $ref: '#/components/schemas/ApplicationConfigurationModuleOpportunityStatesWin' loss: $ref: '#/components/schemas/ApplicationConfigurationModuleOpportunityStatesLoss' ApplicationConfigurationModuleEmail: type: object properties: default_opt_in_link: type: string default_opt_out_link: type: string whitelisted_domains: type: string hide_emails_to_and_from_domains: type: string append_contact_key_to_links: type: boolean Error: type: object properties: code: type: integer format: int32 message: type: string status: type: string details: type: array items: $ref: '#/components/schemas/ErrorDetails' ApplicationFeaturesEnabled: type: object properties: marketing: type: boolean GetSettingsResponse: type: object properties: affiliate: $ref: '#/components/schemas/ApplicationConfigurationModuleAffiliate' appointment: $ref: '#/components/schemas/ApplicationConfigurationModuleAppointment' application: $ref: '#/components/schemas/ApplicationConfigurationModuleApplication' contact: $ref: '#/components/schemas/ApplicationConfigurationModuleContact' ecommerce: $ref: '#/components/schemas/ApplicationConfigurationModuleEcommerce' email: $ref: '#/components/schemas/ApplicationConfigurationModuleEmail' forms: $ref: '#/components/schemas/ApplicationConfigurationModuleForms' fulfillment: $ref: '#/components/schemas/ApplicationConfigurationModuleFulfillment' invoice: $ref: '#/components/schemas/ApplicationConfigurationModuleInvoice' note: $ref: '#/components/schemas/ApplicationConfigurationModuleNote' opportunity: $ref: '#/components/schemas/ApplicationConfigurationModuleOpportunity' task: $ref: '#/components/schemas/ApplicationConfigurationModuleTask' template: $ref: '#/components/schemas/ApplicationConfigurationModuleTemplate' GetApplicationEnabledStatusResponse: type: object properties: isEnabled: type: boolean ApplicationConfigurationModuleOpportunityStatesActive: type: object properties: stages: type: string ApplicationConfigurationModuleNote: type: object properties: appointment_types: type: string share_opportunity_with_related_user: type: boolean ApplicationConfigurationModuleAppointment: type: object properties: appointment_types: type: string share_opportunity_with_related_user: type: boolean ApplicationConfigurationModuleTask: type: object properties: appointment_types: type: string share_opportunity_with_related_user: type: boolean ApplicationConfigurationModuleFulfillment: type: object properties: default_message_to: type: string default_message_fields: type: string ApplicationConfigurationModuleOpportunity: type: object properties: states: $ref: '#/components/schemas/ApplicationConfigurationModuleOpportunityStates' default_stage: type: string ApplicationConfigurationModuleInvoice: type: object properties: tax_label: type: string ApplicationConfigurationModuleOpportunityStatesWin: type: object properties: reasons: type: string stage: type: string ApplicationCompany: type: object properties: name: type: string country: type: string email: type: string city: type: string state: type: string zip: type: string phone: type: string website: type: string street_address_1: type: string street_address_2: type: string phone_ext: type: string caller_id_number: type: string web_logo_url: type: string ApplicationConfigurationModuleAffiliateCommission: type: object properties: levels: type: integer format: int32 calculation_type: type: string participant_types: type: string ApplicationConfigurationModuleContact: type: object properties: title_types: type: string suffix_types: type: string contact_types: type: string phone_types: type: string fax_types: type: string address_labels: $ref: '#/components/schemas/ApplicationConfigurationModuleContactAddressLabels' disable_contact_edit_in_client_login: type: boolean default_new_contact_form: type: string securitySchemes: oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://accounts.infusionsoft.com/app/oauth/authorize tokenUrl: https://api.infusionsoft.com/token scopes: {}