{
  "openapi": "3.0.1",
  "info": {
    "title": "DropX",
    "description": "dropX.io API provides programmatic access to the e-commerce intelligence data.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://dropx.io/api/v1"
    }
  ],
  "paths": {
    "/products/": {
      "get": {
        "tags": [
          "Product Details"
        ],
        "summary": "Get product details by providing the product IDs",
        "description": "Returns product details",
        "parameters": [
          {
            "name": "pids",
            "in": "query",
            "description": "search array of ids",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of search details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "456": {
            "description": "We are sorry, You have reached your limit"
          },
          "458": {
            "description": "Oops...! we don\\'t have enough data to serve your request"
          },
          "459": {
            "description": "Oops...! Missing reqired \"pids\" parameter to serve your request"
          },
          "464": {
            "description": "Error in finding default plan"
          },
          "490": {
            "description": "Unexpected error occurred while processing your request"
          },
          "500": {
            "description": "internal server error"
          }
        },
        "security": [
          {
            "api_key": null
          }
        ]
      }
    },
    "/products/link-search": {
      "get": {
        "tags": [
          "LookUp"
        ],
        "summary": "Search for similar products by providing a link to any e-commerce product.",
        "description": "Returns list of e-commerce product that are close to the one provided -- one from each provider",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "URL must be a url encoded value",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providers",
            "in": "query",
            "description": "A valid e commerce website link(eg. www.flipkart.com or http://www.amazon.in) by a ',' seperated values to filter response by required e-commerce providers",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of search details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "452": {
            "description": "Requested url parameter value is not a valid url"
          },
          "453": {
            "description": "Requested ip is not white listed app token assigned ip list"
          },
          "454": {
            "description": "App does not have any IP"
          },
          "455": {
            "description": "User requested with invalid app token"
          },
          "456": {
            "description": "User reached maximum allow limit according to his plan"
          },
          "458": {
            "description": "Requested search does not have any response"
          },
          "459": {
            "description": "Requested search products api required parameter \"term\" is missing"
          },
          "460": {
            "description": "Requested similar search products api required parameter \"url\" is missing"
          },
          "461": {
            "description": "Requested search product api required \"term\" parameter does not have valid value or empty value passed"
          },
          "462": {
            "description": "Requested similar search product api required \"url\" parameter does not have valid url or empty value passed"
          },
          "463": {
            "description": "Error in processing search request in elastic search"
          },
          "490": {
            "description": "some unexpected error raised in processing user request"
          },
          "500": {
            "description": "internal server error"
          }
        },
        "security": [
          {
            "api_key": null
          }
        ]
      }
    },
    "/products/link-search-v2": {
      "get": {
        "tags": [
          "LookUp"
        ],
        "summary": "Search for similar products by providing a link to any e-commerce product.",
        "description": "Returns list of e-commerce product that are close to the one provided -- one from each provider",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "URL must be a url encoded value",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providers",
            "in": "query",
            "description": "A valid e commerce website link(eg. www.flipkart.com or http://www.amazon.in) by a ',' seperated values to filter response by required e-commerce providers",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of search details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "452": {
            "description": "Requested url parameter value is not a valid url"
          },
          "453": {
            "description": "Requested ip is not white listed app token assigned ip list"
          },
          "454": {
            "description": "App does not have any IP"
          },
          "455": {
            "description": "User requested with invalid app token"
          },
          "456": {
            "description": "User reached maximum allow limit according to his plan"
          },
          "458": {
            "description": "Requested search does not have any response"
          },
          "459": {
            "description": "Requested search products api required parameter \"term\" is missing"
          },
          "460": {
            "description": "Requested similar search products api required parameter \"url\" is missing"
          },
          "461": {
            "description": "Requested search product api required \"term\" parameter does not have valid value or empty value passed"
          },
          "462": {
            "description": "Requested similar search product api required \"url\" parameter does not have valid url or empty value passed"
          },
          "463": {
            "description": "Error in processing search request in elastic search"
          },
          "490": {
            "description": "some unexpected error raised in processing user request"
          },
          "500": {
            "description": "internal server error"
          }
        },
        "security": [
          {
            "api_key": null
          }
        ]
      }
    },
    "/products/search": {
      "get": {
        "tags": [
          "LookUp"
        ],
        "summary": "Search for any product using title",
        "description": "Returns one unique result from every provider that dropx.io tracks",
        "parameters": [
          {
            "name": "term",
            "in": "query",
            "description": "search terms giving any title of products that are sold online",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providers",
            "in": "query",
            "description": "A valid e commerce website link(eg. www.flipkart.com or http://www.amazon.in) by a ',' seperated values to filter response by required e-commerce providers",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of search details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "452": {
            "description": "Requested url parameter value is not a valid url"
          },
          "453": {
            "description": "Requested ip is not white listed app token assigned ip list"
          },
          "454": {
            "description": "App does not have any IP"
          },
          "455": {
            "description": "User requested with invalid app token"
          },
          "456": {
            "description": "User reached maximum allow limit according to his plan"
          },
          "458": {
            "description": "Requested search does not have any response"
          },
          "459": {
            "description": "Requested search products api required parameter \"term\" is missing"
          },
          "460": {
            "description": "Requested similar search products api required parameter \"url\" is missing"
          },
          "461": {
            "description": "Requested search product api required \"term\" parameter does not have valid value or empty value passed"
          },
          "462": {
            "description": "Requested similar search product api required \"url\" parameter does not have valid url or empty value passed"
          },
          "463": {
            "description": "Error in processing search request in elastic search"
          },
          "490": {
            "description": "some unexpected error raised in processing user request"
          },
          "500": {
            "description": "internal server error"
          }
        },
        "security": [
          {
            "api_key": null
          }
        ]
      }
    },
    "/products/search-v2": {
      "get": {
        "tags": [
          "LookUp"
        ],
        "summary": "Search for any product using title",
        "description": "Returns one unique result from every provider that dropx.io tracks",
        "parameters": [
          {
            "name": "term",
            "in": "query",
            "description": "search terms giving any title of products that are sold online",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providers",
            "in": "query",
            "description": "A valid e commerce website link(eg. www.flipkart.com or http://www.amazon.in) by a ',' seperated values to filter response by required e-commerce providers",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of search details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "452": {
            "description": "Requested url parameter value is not a valid url"
          },
          "453": {
            "description": "Requested ip is not white listed app token assigned ip list"
          },
          "454": {
            "description": "App does not have any IP"
          },
          "455": {
            "description": "User requested with invalid app token"
          },
          "456": {
            "description": "User reached maximum allow limit according to his plan"
          },
          "458": {
            "description": "Requested search does not have any response"
          },
          "459": {
            "description": "Requested search products api required parameter \"term\" is missing"
          },
          "460": {
            "description": "Requested similar search products api required parameter \"url\" is missing"
          },
          "461": {
            "description": "Requested search product api required \"term\" parameter does not have valid value or empty value passed"
          },
          "462": {
            "description": "Requested similar search product api required \"url\" parameter does not have valid url or empty value passed"
          },
          "463": {
            "description": "Error in processing search request in elastic search"
          },
          "490": {
            "description": "some unexpected error raised in processing user request"
          },
          "500": {
            "description": "internal server error"
          }
        },
        "security": [
          {
            "api_key": null
          }
        ]
      }
    },
    "/products/title-search": {
      "get": {
        "tags": [
          "LookUp"
        ],
        "summary": "Search for any product using title",
        "description": "Returns list of product ids",
        "parameters": [
          {
            "name": "term",
            "in": "query",
            "description": "search terms giving any title of products that are sold online",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of product details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "456": {
            "description": "We are sorry, You have reached your limit"
          },
          "458": {
            "description": "Oops...! we don\\'t have enough data to serve your request"
          },
          "459": {
            "description": "Oops...! Missing reqired \"term\" parameter to serve your request"
          },
          "461": {
            "description": "Oops...! Required \"term\" parameter should not be empty"
          },
          "464": {
            "description": "Error in finding default plan"
          },
          "490": {
            "description": "Unexpected error occurred while processing your request"
          },
          "500": {
            "description": "internal server error"
          }
        },
        "security": [
          {
            "api_key": null
          }
        ]
      }
    },
    "/users/usage": {
      "get": {
        "tags": [
          "Monitor"
        ],
        "summary": "Get API usuage details",
        "description": "Returns API request consumption details.",
        "responses": {
          "200": {
            "description": "A list of usage details"
          },
          "401": {
            "description": "Invalid authentication"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "description": "authentication header should be in header",
        "name": "access_token",
        "in": "header"
      }
    }
  }
}