openapi: 3.0.0 info: title: API reference description: |- Nector - Powerful Customer Engagement & Loyalty Platform - DO NOT EXPOSE FULL ACCESS API KEY - Only use readonly APIs if integrating with frontend apps or website. - Try and use cachefront.nector.io instead of platform.nector.io as much as possible for GET API calls - A maximum of 100 API calls per minute is allowed - Check your plan usage information from the dashboard - Nector eforces strict param check. (Pass string if it requires string and so on) - We only UUIDV4 - Contact us at support@nector.io for any help Click on export and copy-paste the openapi 3.0 spec inside postman. Get started by creating an account on https://merchant.nector.io contact: name: nector url: https://nector.io?utm_source=api_doc email: support@nector.io version: 1.0.0 servers: - url: https://platform.nector.io/api/v2/merchant - url: https://cachefront.nector.io/api/v2/merchant components: schemas: success: title: success required: - meta - data type: object properties: meta: type: object data: type: object example: meta: {} data: {} error: title: error required: - meta - data type: object properties: meta: type: object data: type: object example: meta: {} data: {} merchant_create_activities: title: merchant_create_activities required: - trigger_id type: object properties: trigger_id: type: string description: (Required) (This needs to be triggers _id value) lead_id: type: string description: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: type: string description: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) referral_code: type: string description: (Minimum length is 1) (Maximum length is 128) (If user exists it will be ignored) name: type: string description: (This is name of this user) metadetail: $ref: "#/components/schemas/subschema_metadetail" trace: $ref: "#/components/schemas/subschema_trace" example: trigger_id: (Required) (This needs to be triggers _id value) lead_id: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) referral_code: (Minimum length is 1) (Maximum length is 128) (If user does not exists it will get created with passed referral_code value else a random 8 digit referral_code will be generated for this user) name: (This is name of this user) metadetail: email: (This needs to be valid email) mobile: (Minimum length is 4) (Maximum length is 15) country: (This needs to one of the allowed countries) (Should be 3 character long and lowercase) gender: (This can only be one of male,female,other) dob: (This needs to be ISO format date only) trace: via_api_for_wallet: title: (Any string that needs to be passed as a title) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) description: (Any string that needs to be passed as a description) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) operation: (This can only be one of cr,dr) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) coin_range: min: (This is the range between which the wallet point will be rewarded) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) max: (This is the range between which the wallet point will be rewarded) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) via_api_for_offer: offer_id: (This needs to be offers _id value) (This will be ignored if the trigger is not of type offer reward or value override is not allowed) via_api_for_email: subject: (Any string that needs to be passed as a subject) (This will be ignored if the trigger is not of type emailtool reward or value override is not allowed) emailtemplate_id: (This needs to be emailtemplates _id value) (This will be ignored if the trigger is not of type emailtool reward or value override is not allowed) params_for_activityrule: evaluation_id: (This needs to be resource value used while evaluating after_delta_day rule, must be passed along with evaluation_type) evaluation_type: (This needs to be resource value type used while evaluating after_delta_day rule, must be passed along with evaluation_id) (This can only be one of leads, coupons, wallettransactions, reviews, orders, triggers) count: 1 amount: 0 params_for_email: randomkey_randomvalue_pair: (any randomkey and randomvalue pair to pass to the emailtemplate) (upto 20 key-value pairs are allowed as part of params_for_email object) merchant_create_offerredeems: title: merchant_create_offerredeems required: - offer_id type: object properties: offer_id: type: string description: (Required) (This needs to be offers _id value) lead_id: type: string description: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: type: string description: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) example: offer_id: (Required) (This needs to be offers _id value) lead_id: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) merchant_create_publicofferredeems: title: merchant_create_publicofferredeems required: - publicoffer_id type: object properties: publicoffer_id: type: string description: (Required) (This needs to be offers _id value) lead_id: type: string description: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: type: string description: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) example: publicoffer_id: (Required) (This needs to be offers _id value) lead_id: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) merchant_create_publicofferrewards: title: merchant_create_publicofferrewards required: - publicoffer_id type: object properties: publicoffer_id: type: string description: (Required) (This needs to be offers _id value) lead_id: type: string description: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: type: string description: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) example: publicoffer_id: (Required) (This needs to be offers _id value) lead_id: (One of lead_id, customer_id is required) (This needs to be leads _id value) customer_id: (One of lead_id, customer_id is required) (Minimum length is 1) (Maximum length is 128) (This needs to be leads customer_id value) merchant_update_leads: title: merchant_update_leads type: object properties: metadetail: properties: dob: type: string description: (This needs to be ISO format date only) example: metadetail: dob: (This needs to be ISO format date only) subschema_metadetail: title: subschema_metadetail type: object properties: email: type: string description: (This needs to be valid email) mobile: type: string description: (Minimum length is 4) (Maximum length is 15) country: type: string description: (This needs to one of the allowed countries) (Should be 3 character long and lowercase) gender: type: string description: (This can only be one of male,female,other) dob: type: string description: (This needs to be ISO format date only) subschema_trace: title: subschema_trace type: object properties: via_api_for_wallet: $ref: "#/components/schemas/subschema_trace_wallet_reward" via_api_for_offer: $ref: "#/components/schemas/subschema_trace_offer_reward" via_api_for_email: $ref: "#/components/schemas/subschema_trace_email_reward" via_api_for_event: $ref: "#/components/schemas/subschema_trace_event_reward" via_api_for_webhook: $ref: "#/components/schemas/subschema_trace_webhook_reward" params_for_activityrule: type: object properties: evaluation_id: type: string description: (This needs to be resource value used while evaluating after_delta_day rule, must be passed along with evaluation_type) evaluation_type: type: string description: (This needs to be resource value type used while evaluating after_delta_day rule, must be passed along with evaluation_id) (This can only be one of leads, coupons, wallettransactions, reviews, orders, triggers) count: type: number description: (Minimum value is 1) (This needs to be valid integer value use while evaluating on_activity_count_reached, on_timeline_count_reached rules) amount: type: number description: (Minimum value is 0) (This needs to be valid number value use while evaluating on_order_amount_matched, on_activity_amount_reached, on_timeline_amount_reached rules) params_for_email: type: object properties: randomkey_randomvalue_pair: type: string description: (any randomvalue to pass to the emailtemplate) (upto 20 key-value pairs are allowed as part of params_for_email object) params_for_event: type: object properties: randomkey_randomvalue_pair: type: string description: (any randomvalue to pass to the event) (upto 20 key-value pairs are allowed as part of params_for_event object) params_for_webhook: type: object properties: randomkey_randomvalue_pair: type: string description: (any randomvalue to pass to the webhook) (upto 20 key-value pairs are allowed as part of params_for_webhook object) subschema_trace_wallet_reward: title: subschema_trace_wallet_reward type: object properties: title: type: string description: (Any string that needs to be passed as a title) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) description: type: string description: (Any string that needs to be passed as a description) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) operation: type: string description: (This can only be one of cr,dr) (This will be ignored if the trigger is not of type wallet reward or value override is not allowed) coin_range: type: object description: (This is the range between which the wallet point will be rewarded) (This will be ignored if the rule is not of type wallet reward or it does not allow value override) subschema_trace_offer_reward: title: subschema_trace_offer_reward type: object properties: offer_id: type: string description: (This needs to be offers _id value) (This will be ignored if the rule is not of type offer reward or it does not allow value override) subschema_trace_email_reward: title: subschema_trace_email_reward type: object properties: subject: type: string description: (Any string that needs to be passed as a subject) (This will be ignored if the trigger is not of type emailtool reward or value override is not allowed) emailtemplate_id: type: string description: (This needs to be emailtemplates _id value) (This will be ignored if the trigger is not of type emailtool reward or value override is not allowed) subschema_trace_event_reward: title: subschema_trace_event_reward type: object properties: event_topic: type: string description: (Any string that needs to be passed as a topic) (This will be ignored if the trigger is not of type event reward or value override is not allowed) integration_id: type: string description: (This needs to be integrations _id value) (This will be ignored if the trigger is not of type event reward or value override is not allowed) subschema_trace_webhook_reward: title: subschema_trace_webhook_reward type: object properties: webhook_topic: type: string description: (Any string that needs to be passed as a topic) (This will be ignored if the trigger is not of type webhook reward or value override is not allowed) webhook_uri: type: string description: (This needs to be uri to which the webhook will be called) (This will be ignored if the trigger is not of type webhook reward or value override is not allowed) webhook_secret: type: string description: (This needs to be valid secret, based on this the business can verify the webhook) (This will be ignored if the trigger is not of type webhook reward or value override is not allowed) securitySchemes: basicAuth: type: http scheme: basic tags: - name: Start Rewarding in 5 minutes - name: Offering - name: User Tool - name: Listing APIs - name: Misc paths: /activities: post: tags: - Start Rewarding in 5 minutes summary: Reward Using Trigger description: |- - One single API for all your rewarding needs. - Triggers can be created from the dashboard - Contact us at support@nector.io for help parameters: - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/merchant_create_activities" required: true responses: "200": description: "200" security: [] /coupons/{id}: get: tags: - Listing APIs summary: Get Coupon description: Get details of the coupon parameters: - name: id in: path description: (Required) (This can be any valid uuidv4 value or coupons _id value) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /coupons: get: tags: - Listing APIs summary: Fetch Coupons description: Fetch coupons based on various filters parameters: - name: lead_id in: query description: (Required) (This needs to be leads _id value) required: true schema: type: string - name: offer_id in: query description: (This needs to be coupons offer_id value) schema: type: string - name: id in: query description: (This needs to be coupons _id value) schema: type: string - name: page in: query description: (Minimum is 1) schema: type: number - name: limit in: query description: (Minimum is 1) (Maximum is 100) schema: type: number - name: sort in: query description: (This can only be one of created_at,updated_at) schema: type: string - name: sort_op in: query description: (This can only be one of ASC,DESC) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /referrals/{id}: get: tags: - Listing APIs summary: Get Referral description: Get details of the referral parameters: - name: id in: path description: (Required) (This can be any valid uuidv4 value or referral _id value) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /referrals: get: tags: - Listing APIs summary: Fetch Referrals description: Fetch referrals based on various filters parameters: - name: referred_by_lead_id in: query description: (This needs to be leads _id value) (one of referred_to_lead_id or referred_by_lead_id is required) required: true schema: type: string - name: referred_to_lead_id in: query description: (This needs to be leads _id value) (one of referred_to_lead_id or referred_by_lead_id is required) schema: type: string - name: id in: query description: (This needs to be coupons _id value) schema: type: string - name: page in: query description: (Minimum is 1) schema: type: number - name: limit in: query description: (Minimum is 1) (Maximum is 100) schema: type: number - name: sort in: query description: (This can only be one of created_at,updated_at) schema: type: string - name: sort_op in: query description: (This can only be one of ASC,DESC) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /offerredeems: post: tags: - Offering summary: Redeem Offer description: Redeem a offer using wallet points. parameters: - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/merchant_create_offerredeems" required: true responses: "200": description: "200" security: [] /publiccoupons/{id}: get: tags: - Listing APIs summary: Get Cross Selling Coupon description: Get details of the cross selling coupon parameters: - name: id in: path description: (Required) (This can be any valid uuidv4 value or publiccoupons _id value) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /publiccoupons: get: tags: - Listing APIs summary: Fetch Cross Selling Coupons description: Fetch cross selling coupons based on various filters parameters: - name: lead_id in: query description: (Required) (This needs to be leads _id value) required: true schema: type: string - name: publicoffer_id in: query description: (This needs to be publiccoupons offer_id value) schema: type: string - name: id in: query description: (This needs to be publiccoupons _id value) schema: type: string - name: page in: query description: (Minimum is 1) schema: type: number - name: limit in: query description: (Minimum is 1) (Maximum is 100) schema: type: number - name: sort in: query description: (This can only be one of created_at,updated_at) schema: type: string - name: sort_op in: query description: (This can only be one of ASC,DESC) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /publicofferredeems: post: tags: - Offering summary: Redeem Cross Selling Offer description: Redeem a cross selling offer using wallet points. parameters: - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/merchant_create_publicofferredeems" required: true responses: "200": description: "200" security: [] /publicofferrewards: post: tags: - Offering summary: Reward Cross Selling Offer description: Reward a cross selling offer without using wallet points. This API can be called only with full access api key, make sure to call this API only from your backend using full access api key. DO NOT EXPOSE FULL ACCESS API KEY parameters: - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/merchant_create_publicofferrewards" required: true responses: "200": description: "200" security: [] /triggers: get: tags: - Listing APIs summary: Fetch Triggers (Content) description: Fetch triggers (content) based on various filters parameters: - name: id in: query description: (This needs to be triggers _id value) schema: type: string - name: page in: query description: (Minimum is 1) schema: type: number - name: limit in: query description: (Minimum is 1) (Maximum is 100) schema: type: number - name: sort in: query description: (This can only be one of created_at,updated_at) schema: type: string - name: sort_op in: query description: (This can only be one of ASC,DESC) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /leads/{id}: put: tags: - User Tool summary: Update User description: Update details of the user, it will update properties of the user, if the properties already exists it will not be updated parameters: - name: customer_id in: query description: (This needs to be leads customer_id value) (If this value is passed, it will be given first preference while updating user) schema: type: string - name: id in: path description: (Required) (This needs to be leads _id value) (If need to update user via customer id pass any random uuid v4 value for id) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/merchant_update_leads" required: true responses: "200": description: "200" security: [] get: tags: - Listing APIs summary: Get User description: Get details of the user parameters: - name: customer_id in: query description: (This needs to be leads customer_id value) (If this value is passed, it will be given first preference while searching user) schema: type: string - name: referral_code in: query description: (This needs to be leads referral_code value) (If this value is passed, it will be given second preference while searching user) schema: type: string - name: id in: path description: (Required) (This needs to be leads _id value) (If need to get user via customer id pass any random uuid v4 value for id) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /wallettransactions/{id}: get: tags: - Listing APIs summary: Get WalletTransaction description: Get details of the wallet transaction parameters: - name: id in: path description: (Required) (This needs to be wallettransactions _id value) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /wallettransactions: get: tags: - Listing APIs summary: Fetch WalletTransactions description: Fetch wallet transactions based on various filters parameters: - name: lead_id in: query description: (Required) (This needs to be leads _id value) required: true schema: type: string - name: hash in: query description: (Minimum length is 1) (Maximum length is 128) (This needs to be wallettransactions hash value) schema: type: string - name: operation in: query description: (This needs to be wallettransactions operation value) (This can only be one of cr,dr) schema: type: string - name: id in: query description: (This needs to be wallettransactions _id value) schema: type: string - name: page in: query description: (Minimum is 1) schema: type: number - name: limit in: query description: (Minimum is 1) (Maximum is 100) schema: type: number - name: sort in: query description: (This can only be one of created_at,updated_at) schema: type: string - name: sort_op in: query description: (This can only be one of ASC,DESC) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /reviews/{id}: get: tags: - Listing APIs summary: Get Review description: Get details of the review parameters: - name: id in: path description: (Required) (This needs to be reveiews _id value) required: true schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /reviews: get: tags: - Listing APIs summary: Fetch Reviews description: Fetch reviews based on various filters parameters: - name: reference_product_source in: query description: (This needs to be products reference_product_source value) (This can only be one of external,shopify,woocommerce) schema: type: string - name: reference_product_id in: query description: (This needs to be products reference_product_id value) schema: type: string - name: is_featured in: query description: (This needs to be reviews is_featured value) schema: type: string - name: is_verified in: query description: (This needs to be reviews is_verified value) schema: type: string - name: id in: query description: (This needs to be reviews _id value) schema: type: string - name: page in: query description: (Minimum is 1) schema: type: number - name: limit in: query description: (Minimum is 1) (Maximum is 100) schema: type: number - name: sort in: query description: (This can only be one of created_at,updated_at) schema: type: string - name: sort_op in: query description: (This can only be one of ASC,DESC) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: [] /reviews-count: get: tags: - Listing APIs summary: Get Review Count description: Get review count for the passed filters parameters: - name: reference_product_source in: query description: (This needs to be products reference_product_source value) (This can only be one of external,shopify,woocommerce) schema: type: string - name: reference_product_id in: query description: (This needs to be products reference_product_id value) schema: type: string - name: x-source in: header description: (Required) (This can only be one of mobile,unix,web) required: true schema: type: string - name: x-apikey in: header description: (Required) (This needs to be your apikey) required: true schema: type: string - name: x-workspaceid in: header description: (Required) (This needs to be your workspaceid) required: true schema: type: string responses: "200": description: "200" security: []