{ "components": { "schemas": { "clickout": { "description": "Represents an Offer click-out. It contains all the information needed to properly identify the offer, trace it ot the user navigating from search page, and relevant information about the offer at the click-out moment (e.g.: price, lowest price among other offers, etc.)", "properties": { "productId": { "type": "string", "description": "Product identifier", "example": "584f4c7f4cedfd0005e17c19" }, "seller": { "type": "string", "description": "Seller/Retailer unique identifier", "example": "klingel" }, "sellerProductId": { "type": "string", "description": "Product as identifier given by the seller/retailer", "example": "SAND003" }, "price": { "type": "number", "format": "float", "description": "Offer price at the moment of the click-out", "example": "67.00" }, "deepUrl": { "type": "string", "description": "Full product URL at the retailer side", "example": "http://www.klingel.nl/ProductDisplay?langId=31&catalogId=1000100000&storeId=100003&partNumber=460741&colorId=rood&attrId=G&vcp=gcqdjikm13m8iz&refID=Klingel_NL/Shopr/Dames/Schoenen/Pumps/Klassieke_pumps/04919/50X/&emsrc=Produktportale" }, "lowestPrice": { "type": "number", "format": "float", "description": "Lowest price among all offers", "example": "59.99" }, "highestPrice": { "type": "number", "format": "float", "description": "Seller/Retailer unique identifier", "example": "87.00" }, "offerCount": { "type": "integer", "description": "Number of offers", "default": "1", "example": "5", "minimum": 1 }, "offerPosition": { "type": "integer", "description": "Offer position among other offers (e.g.: first, second, etc.)", "example": "2", "minimum": 1 }, "categoryId": { "type": "string", "description": "Category where the product was put into", "example": "1234" }, "tracking": { "$ref": "#/components/schemas/tracking", "description": "Tracking information" }, "creationTime": { "type": "string", "format": "date-time", "description": "When this click-out happened", "example": "2016-12-22T11:56:52Z" } }, "required": [ "productId", "seller", "sellerProductId", "price", "deepUrl", "lowestPrice", "highestPrice", "offerCount", "offerPosition", "categoryId", "tracking", "creationTime" ], "type": "object" }, "error_code": { "properties": { "code": { "type": "string", "description": "Machine readable code for this specific error message", "example": "100" }, "localized_string_code": { "type": "string", "description": "A localized description of the error code", "example": "Lowest price cannot be bigger than highest price" } }, "required": [ "code", "localized_string_code" ], "type": "object" }, "error_response": { "properties": { "message": { "type": "string", "description": "User-friendly message." }, "error_codes": { "items": { "$ref": "#/components/schemas/error_code" }, "type": "array", "description": "List of errors that may happened all together." }, "fingerprint": { "type": "string", "description": "The request fingerprint associated with this error." } }, "required": [ "error_codes" ], "type": "object" }, "status": { "description": "Response for ping, health check and version", "properties": { "response": { "type": "string", "example": "100ms | healthy | 0.0.1" } }, "required": [ "response" ], "type": "object" }, "tracking": { "description": "Series of attributes for tracking purposes", "properties": { "ipAddress": { "type": "string" }, "origin": { "$ref": "#/components/schemas/client_origin", "description": "Client originating the order request essentially any of the values of the client_origin enum." }, "userAgent": { "type": "string" }, "referrer": { "type": "string", "description": "Optional page referrer." } }, "required": [ "ipAddress", "origin" ], "type": "object" }, "client_origin": { "description": "Describes the client where the request for a clickout has originated. Possible values: shopr_website,shopr_mobile_web,shopr_iphone,shopr_ipad,shopr_android.", "enum": [ "shopr_website", "shopr_mobile_web", "shopr_iphone", "shopr_ipad", "shopr_android" ], "type": "string" } } }, "info": { "contact": { "name": "Shopr Team" }, "description": "Host API documentation Click-Out Statistics API.", "license": {}, "termsOfService": "", "title": "clickouts api", "version": "0.0.1-dev" }, "openapi": "3.0.2", "paths": { "/:fingerprint/clickouts": { "post": { "description": "Create a new click-out. Requests are accepted for eventual processing.", "operationId": "post--fingerprint-clickouts", "parameters": [ { "deprecated": false, "in": "path", "required": true, "schema": { "type": "string" }, "description": "User fingerprint used for correlation purposes.", "name": "fingerprint" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/clickout" } } } }, "responses": { "202": { "description": "string", "content": { "application/json": { "schema": { "type": "string" } } }, "headers": {} }, "422": { "description": "Example: lowestPrice is greater than highestPrice.", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/error_response" }, "type": "array" } } }, "headers": {} } }, "tags": [ "clickout" ] } }, "/_internal_/ping": { "get": { "description": "Ping in milliseconds.", "operationId": "get--_internal_-ping", "parameters": [], "responses": { "200": { "description": "com.shopr.api.clickouts.api.v0.models.status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/status" } } }, "headers": {} } }, "tags": [ "status" ] } }, "/_internal_/status": { "get": { "description": "Current health check status.", "operationId": "get--_internal_-status", "parameters": [], "responses": { "200": { "description": "com.shopr.api.clickouts.api.v0.models.status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/status" } } }, "headers": {} } }, "tags": [ "status" ] } }, "/_internal_/version": { "get": { "description": "API version.", "operationId": "get--_internal_-version", "parameters": [], "responses": { "200": { "description": "string", "content": { "application/json": { "schema": { "type": "string" } } }, "headers": {} } }, "tags": [ "status" ] } } }, "servers": [ { "url": "http://api.shopr.nl/stats" } ] }