openapi: 3.0.0 info: title: API reference description: |- Nector - Powerful Customer Engagement & Loyalty Platform - 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. - 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) - UUID version we support is v4. - Contact us at tech@nector.io for 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 email: tech@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) category_range: [] 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_update_leads: title: merchant_update_leads type: object properties: name: type: string description: (This is name of this user) tier: type: string description: (This can only be one of the defined tiers) classification: type: string description: (This can only be one of lead,affiliate) metadetail: $ref: "#/components/schemas/subschema_metadetail" example: name: (This is name of this user) tier: (This can only be one of the defined tiers) classification: (This can only be one of lead,affiliate) 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) merchant_update_referredbyreferralcode: title: merchant_update_referredbyreferralcode type: object required: - referred_by_referral_code properties: customer_id: type: string description: (This needs to be leads customer_id value) (If this value is passed, it will be given first preference while updating user) referred_by_referral_code: type: string description: (This needs to be referrer leads referral_code value) example: customer_id: (This needs to be leads customer_id value) (If this value is passed, it will be given first preference while updating user) referred_by_referral_code: (This needs to be referrer leads referral_code value) merchant_update_wallettransactions: title: merchant_update_wallettransactions type: object properties: status: type: string description: (This can only be one of success) example: status: (This can only be one of success) 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" 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) 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) category_range: type: array description: (These are offer categories) (This can only be from fashion,electronics,entertainment,food & grocery,beauty,fitness,other) (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) 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: |- NOTICE - Other Rewarding APIs will be deprecated in favour of this API - One single API for all your rewarding needs. - Triggers can be created from the dashboard - Contact us at tech@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: [] get: tags: - Listing APIs summary: Fetch Activities description: Fetch activities 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: parent_id in: query description: (This needs to be activities parent_id value) schema: type: string - name: parent_type in: query description: (This needs to be one of leads, coupons, wallettransactions, reviews, orders, triggers) schema: type: string - name: event in: query description: (This needs to be one of lead_create, coupon_create, wallettransaction_create, review_create, order_create, referral_create, email_create) schema: type: string - name: id in: query description: (This needs to be activities _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: [] /activities-count: get: tags: - Listing APIs summary: Get Activity Count description: Get count of activities made by a customer on a trigger parameters: - name: lead_id in: query description: (Required) (This needs to be leads _id value) required: true schema: type: string - name: parent_id in: query description: (Required) (This needs to be activities parent_id value) required: true schema: type: string - name: parent_type in: query description: (Required) (This needs to be one of leads, coupons, wallettransactions, reviews, orders, triggers) 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/{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: type in: query description: (This needs to be coupons type value) (This can only be one of public,private) schema: type: string - name: source in: query description: (This needs to be coupons source value) (This can only be one of external,nector) schema: type: string - name: status in: query description: (This needs to be coupons status value) (This can only be one of issued,redeemed) 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: [] /offers/{id}: get: tags: - Listing APIs summary: Get Offer description: Get details of the offer parameters: - name: id in: path description: (Required) (This needs to be offers _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: [] /offers: get: tags: - Listing APIs summary: Fetch Offers description: Fetch offers based on various filters parameters: - name: visibility in: query description: (This needs to be offers visibility value) (This can only be one of public,private) schema: type: string - name: id in: query description: (This needs to be offers _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: [] /products/{id}: get: tags: - Listing APIs summary: Get Product description: Get details of the product parameters: - name: id in: path description: (Required) (This needs to be products _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: [] /products: get: tags: - Listing APIs summary: Fetch Products description: Fetch products based on various filters parameters: - name: visibility in: query description: (This needs to be products visibility value) (This can only be one of public,private) schema: type: string - name: id in: query description: (This needs to be products _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: [] /productvariants/{id}: get: tags: - Listing APIs summary: Get Product Variant description: Get details of the product variant parameters: - name: id in: path description: (Required) (This needs to be productvariants _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: [] /productvariants: get: tags: - Listing APIs summary: Fetch Product Variants description: Fetch product variants based on various filters parameters: - name: product_id in: query description: (This needs to be products _id value) required: true schema: type: string - name: id in: query description: (This needs to be productvariants _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: [] /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 (Calls from readonly API key will not update value if it already exists) description: Update 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 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: [] /leads-referred-by-referral-code/{id}: put: tags: - User Tool summary: Update Referred By Referral Code (Calls are supported only from full access API key) description: Update referral details of the user parameters: - 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_referredbyreferralcode" required: true 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: 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: 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: []