Newstore external-public API
The external-public API from Newstore — 89 operation(s) for external-public.
The external-public API from Newstore — 89 operation(s) for external-public.
swagger: '2.0'
info:
version: '1.0'
title: NewStore address external-public API
description: NewStore public APIs
contact:
email: support@newstore.com
name: NewStore API Support
url: https://developer.newstore.com
host: dodici-demo.p.newstore.net
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
security: []
tags:
- name: external-public
paths:
/catalog/import-schemas:
post:
description: "Create new schema object containing jsonschema of [version 7](https://json-schema.org/draft-07/json-schema-release-notes).\nThis schema is used during import process to validate entity object before persisting it in catalog indexes.\nValid jsonschema file\n * is validated against [meta schema](https://json-schema.org/draft-07/schema)\n * references only properties mentioned in whitelist\n * #ref points only to local resource, e.g. external resources are not allowed.\n\nHere is list of whitelisted fields that can be used in schema (case sensitive):\n- brand (string, may be null)\n- title (string, may be null)\n- caption (string, may be null)\n- description (string, may be null)\n- keywords (array of strings, may be null)\n- product_id (string, max size 255, cannot contain characters `=%`)\n- variant_group_id (string, max size 255)\n- template_id (string, may be null)\n- tax_class_id (string, may be null)\n- schedule_b (string, may be null, [definition](https://usacustomsclearance.com/process/hts-code-vs-hs-code))\n- product_hts_number (string, may be null)\n- google_category (string, may be null)\n- preorder_start (time RFC 3339 string, may be null)\n- online_to (time RFC 3339 string, may be null)\n- online_from (time RFC 3339 string, may be null)\n- country_of_origin (string, may be null)\n- material (string, may be null)\n- extended_attributes (array of attributes, may be null)\n - name (string, may be null)\n - value (string, may be null)\n- external_identifiers (array of identifiers, may be null)\n - type (string, may be null)\n - value (string, may be null)\n- filterable_attributes (array of attributes, may be null)\n - name (string, may be null)\n - value (string, may be null)\n- searchable_attributes (object contain key value string pairs, may be null )\n - [string] : [string] (name of searchable attribute)\n- shipping_dimension_unit (string, may be null)\n- shipping_dimension_width (number, may be null)\n- shipping_dimension_height (number, may be null)\n- shipping_dimension_length (number, may be null)\n- shipping_weight_value (number, may be null)\n- shipping_weight_unit (string, may be null)\n- variation_additional_1_name (string, may be null)\n- variation_additional_2_name (string, may be null)\n- variation_additional_1_value (string, may be null)\n- variation_additional_2_value (string, may be null)\n- variation_color_value (string, may be null)\n- variation_size_gender (string, may be null)\n- variation_size_system (string, may be null)\n- variation_size_value (string, may be null)\n- variation_size_type (string, may be null)\n"
summary: createImportSchema
tags:
- external-public
operationId: createImportSchema
deprecated: false
produces:
- application/problem+json
- application/json
consumes:
- application/schema+json
parameters:
- name: Content-Type
in: header
required: false
enum:
- application/schema+json
type: string
description: ''
- name: body
in: formData
required: true
type: file
format: file
description: ''
- name: id
in: query
required: false
type: string
minLength: 1
maxLength: 36
pattern: ^[a-zA-Z0-9_-]+$
description: default generated id is returned
- name: entity
in: query
required: false
enum:
- PRODUCTS
type: string
minLength: 1
description: default id PRODUCTS
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Problem'
headers: {}
'201':
description: Created
schema:
$ref: '#/definitions/ImportSchemaCreated'
headers:
Last-Modified:
description: Date when of schema file was lastly modified
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'409':
description: Already Exists
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- catalog:import-schemas:write
/catalog/import-schemas/{id}:
delete:
description: ''
summary: destroyImportSchema
tags:
- external-public
operationId: destroyImportSchema
deprecated: false
produces:
- application/problem+json
parameters:
- name: id
in: path
required: true
type: string
minLength: 1
maxLength: 36
pattern: ^[a-zA-Z0-9_-]+$
description: ''
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Problem'
headers: {}
'204':
description: No Content
headers: {}
'404':
description: Not Found
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- catalog:import-schemas:write
get:
description: ''
summary: showImportSchema
tags:
- external-public
operationId: showImportSchema
deprecated: false
produces:
- application/problem+json
- application/json
- application/schema+json
parameters:
- name: id
in: path
required: true
type: string
minLength: 1
maxLength: 36
pattern: ^[a-zA-Z0-9_-]+$
description: ''
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Problem'
headers: {}
'200':
description: OK
schema:
$ref: '#/definitions/ImportSchemaGet'
headers:
Last-Modified:
description: Date Time when of schema file was lastly modified
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- catalog:import-schemas:read
patch:
description: ''
summary: updateImportSchema
tags:
- external-public
operationId: updateImportSchema
deprecated: false
produces:
- application/problem+json
consumes:
- application/schema+json
parameters:
- name: id
in: path
required: true
type: string
minLength: 1
maxLength: 36
pattern: ^[a-zA-Z0-9_-]+$
description: ''
- name: Content-Type
in: header
required: false
enum:
- application/schema+json
type: string
description: ''
- name: body
in: formData
required: true
type: file
format: file
description: ''
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Problem'
headers: {}
'204':
description: Updated
headers:
Last-Modified:
description: Date Time when of schema file was lastly modified
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- catalog:import-schemas:write
/catalog/exports/catalogs/{catalog}/pricebooks/{pricebook}:
get:
description: 'Use this resource to export a specific price book. The export can be requested in CSV or SQLite format.
The export contains the following fields:
| product_id (string) | price (float32) | currency_code (string) |
|---|---|---|
| prod1 | 16.99 | USD |
Export API are not immediately scheduling new export.
Exports are automatically scheduled daily. Usually at 8:00 UTC. They are usually finished before 9:00 UTC.
API can be used to retrieve max 1 day old snapshot of pricing data.
Response header `Last-Modified` can be used to determine when file was updated last time (example value `Mon, 18 Dec 2023 08:00:21 GMT`).
Response header `ETag` can be used to determine whether version you already downloaded before match current one. (example value `"2ad5ba4e24fe1c0d225e9a94049f142d"`)
Please use it with combination with `If-None-Match` request header to download file only when something changed.
'
summary: showPricebookExport
tags:
- external-public
operationId: showPricebookExport
deprecated: false
produces:
- application/problem+json
parameters:
- name: catalog
in: path
required: true
type: string
description: The catalog the pricebook, the user wants to export, belongs to.
- name: pricebook
in: path
required: true
type: string
description: The pricebook the user wants to export.
- name: format
in: query
required: false
enum:
- csv
- sqlite
default: csv
type: string
description: The desired response format, defaults to 'csv'.
responses:
'302':
description: Temporary redirect to actual export file, stored in S3.
headers:
Location:
description: The S3 presigned URL to redirect to, to access the requested priceook export.
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Problem'
headers: {}
'403':
description: Forbidden, authentication scope did not met requirements
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not found
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- catalog:pricebook-export:read
/catalog/catalogs/{catalog}/offlineproducts:
get:
description: "Use this resource to download products in a file. The export can be requested in CSV.\n\n- CSV delimiter is `\\t` (tab)\n- CSV line is ended with `\\n` (end line)\n- CSV cell is escaped when containing special characters `\\t` (tab) `\\n` (new line) `\\r` (carriage return) with `\\\\t` `\\\\n` `\\\\r`\n- CSV cell is escaped with `\"` (double quote) when contain double quote originally (relevant to json fields) [RFC 4180](https://www.ietf.org/rfc/rfc4180.txt)\n\nSchema:\n- product_id (string)\n- variant_group_id (string)\n- is_available (bool) - true if product ATP > 0. This value is synchronized from Order Management. This field is eventually consistent. There is no SLA how old this value can be. Please consider using OM directly for use-cases requiring strict consistency. \n- categories (json array)\n - path (string)\n - position (int32)\n- main_category_path (string)\n- main_category_position (int32)\n- external_identifiers (json array)\n - type (string)\n - value (string)\n- extended_attributes (json array)\n - name (string)\n - value (string)\n- title (string)\n- brand\t(string)\n- caption (string)\n- description (string)\n- keywords (json array of strings)\n- images (json array)\n - url (string)\n - title (string)\n - identifier (string)\n - altText (string)\n - dominantColor (string)\n - width (int32)\n - height (int32)\n - aspectRatio (float32)\n - tags (json array of strings)\n- template_id string\t\n- price (float32) price from default pricebook\n- currency (string)\t\n- country_of_origin (string)\n- tax_class_id (string)\n- preorder_start (string RFC3339 truncated to seconds)\n- online_from (string RFC3339 truncated to seconds)\n- online_to (string RFC3339 truncated to seconds)\n- variation_color_value (string)\n- variation_size_value (string)\n- variation_size_gender (string)\n- variation_size_type (string)\n- variation_size_system (string)\n- variation_size_sort_position (int32) \n- variation_additional_1_name (string)\n- variation_additional_1_value (string)\n- variation_additional_2_name (string)\n- variation_additional_2_value (string)\n- product_hts_number (string)\n- schedule_b (string)\n- shipping_dimension_height (float32)\n- shipping_dimension_length (float32)\n- shipping_dimension_unit (string)\n- shipping_dimension_width (float32)\n- shipping_weight_value (float32)\n- shipping_weight_unit (string)\n- serialized_inventory (bool)\n- variable_pricing (bool)\n- inventory_tracked (bool)\n- material (string)\n- updated_at (int64 Unix Timestamp Milliseconds) - some products may have this value empty, value is then considered to be Thu Jan 01 1970 00:00:00 GMT+0000\n\nFiles are refreshed automatically. They are scheduled daily. Usually at 8:00 UTC. They are usually finished before 9:00 UTC.\nAPI can be used to retrieve max 1 day old snapshot of product data.\n\nResponse header `Last-Modified` can be used to determine when file was updated last time (example value `Mon, 18 Dec 2023 08:00:21 GMT`).\nResponse header `ETag` can be used to determine whether version you already downloaded before match current one. (example value `\"2ad5ba4e24fe1c0d225e9a94049f142d\"`)\nPlease use it with combination with `If-None-Match` request header to download file only when something changed.\n"
summary: listProducts
tags:
- external-public
operationId: listProducts
deprecated: false
produces:
- application/json
- application/problem+json
parameters:
- name: catalog
in: path
required: true
type: string
description: The catalog the product, the user wants to export, belongs to.
- name: locale
in: query
required: false
default: en-us
type: string
description: The locale the user wants to export. Example en-us.csv
- name: Accept
in: header
required: false
enum:
- text/csv
default: text/csv
type: string
- name: redirect
in: query
required: false
default: true
type: boolean
description: if true api will return HTTP 302 redirect to resource, otherwise it will return json response with link to a file.
responses:
'200':
description: Response with a download link
schema:
$ref: '#/definitions/DownloadResponse'
headers: {}
'302':
description: Temporary redirect to actual export file, stored in S3.
headers:
Location:
description: The S3 presigned URL to redirect to, to access the requested product export.
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Problem'
headers: {}
'403':
description: Forbidden, authentication scope did not met requirements
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not found
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- catalog:product-export:read
/checkout/carts:
post:
description: Creates a new empty cart.
summary: createCart
tags:
- external-public
operationId: createCart
deprecated: false
produces:
- application/problem+json
consumes:
- application/json
parameters:
- name: Content-Type
in: header
required: false
enum:
- application/json
type: string
description: ''
- name: body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/CreateCartRequestBody'
responses:
default:
description: Unexpected error not otherwise documented
schema:
$ref: '#/definitions/Problem'
headers: {}
'201':
description: Created
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Access-Control-Expose-Headers:
type: string
Location:
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'422':
description: Unprocessable Entity
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- checkout:carts:write
/checkout/carts/{cartId}:
get:
description: Returns a cart by its ID.
summary: showCart
tags:
- external-public
operationId: showCart
deprecated: false
produces:
- application/problem+json
- application/json
parameters:
- name: cartId
in: path
required: true
type: string
description: Cart ID
responses:
default:
description: Unexpected error not otherwise documented
schema:
$ref: '#/definitions/Problem'
headers: {}
'200':
description: OK
schema:
$ref: '#/definitions/CartResource'
headers: {}
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'422':
description: Unprocessable Entity
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- checkout:carts:read
patch:
description: Changes a cart.
summary: updateCart
tags:
- external-public
operationId: updateCart
deprecated: false
produces:
- application/problem+json
consumes:
- application/json
parameters:
- name: cartId
in: path
required: true
type: string
description: Cart ID
- name: Content-Type
in: header
required: false
enum:
- application/json
type: string
description: ''
- name: body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/ChangeCartRequestBody'
responses:
default:
description: Unexpected error not otherwise documented
schema:
$ref: '#/definitions/Problem'
headers: {}
'200':
description: OK
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Access-Control-Expose-Headers:
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'409':
description: Conflict
schema:
$ref: '#/definitions/Problem'
headers: {}
'422':
description: Unprocessable Entity
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- checkout:carts:write
/checkout/carts/{cartId}/items:
post:
description: Add a line item to a cart
summary: createLineItem
tags:
- external-public
operationId: createLineItem
deprecated: false
produces:
- application/problem+json
- application/json
consumes:
- application/json
parameters:
- name: cartId
in: path
required: true
type: string
description: Cart ID
- name: Content-Type
in: header
required: false
enum:
- application/json
type: string
description: ''
- name: body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/AddItemRequestBody'
responses:
default:
description: Unexpected error not otherwise documented
schema:
$ref: '#/definitions/Problem'
headers: {}
'201':
description: Created
schema:
$ref: '#/definitions/AddItemResponseBody'
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Access-Control-Expose-Headers:
type: string
Location:
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'409':
description: Conflict
schema:
$ref: '#/definitions/Problem'
headers: {}
'422':
description: Unprocessable Entity
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- checkout:carts:write
/checkout/carts/{cartId}/items/{lineItemId}:
delete:
description: Removes a line item and all its add-ons from the cart.
summary: destroyLineItem
tags:
- external-public
operationId: destroyLineItem
deprecated: false
produces:
- application/problem+json
- application/json
parameters:
- name: cartId
in: path
required: true
type: string
description: Cart ID
- name: lineItemId
in: path
required: true
type: string
description: Line Item ID
responses:
default:
description: Unexpected error not otherwise documented
schema:
$ref: '#/definitions/Problem'
headers: {}
'200':
description: OK
schema:
$ref: '#/definitions/RemoveItemResponseBody'
headers: {}
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'409':
description: Conflict
schema:
$ref: '#/definitions/Problem'
headers: {}
'422':
description: Unprocessable Entity
schema:
$ref: '#/definitions/Problem'
headers: {}
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/Problem'
headers:
Retry-After:
type: string
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Problem'
headers: {}
'502':
description: Bad Gateway
schema:
$ref: '#/definitions/Problem'
headers: {}
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/Problem'
headers: {}
security:
- oauth:
- checkout:carts:write
patch:
description: Updates cart line item details
summary: updateLineItem
tags:
- external-public
operationId: updateLineItem
deprecated: false
produces:
- application/problem+json
- application/json
consumes:
- application/json
parameters:
- name: cartId
in: path
required: true
type: string
description: Cart ID
- name: lineItemId
in: path
required: true
type: string
description: Line Item ID
- name: Content-Type
in: header
required: false
enum:
- application/json
type: string
description: ''
- name: body
in: body
required: true
description: ''
schema:
$ref: '#/definitions/ChangeItemRequestBody'
responses:
default:
description: Unexpected error not otherwise documented
schema:
$ref: '#/definitions/Problem'
headers: {}
'200':
description: OK
schema:
$ref: '#/definitions/ChangeItemResponseBody'
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Access-Control-Expose-Headers:
type: string
'400':
description: Bad Request
schema:
$ref: '#/definitions/Problem'
headers: {}
'404':
description: Not Found
schema:
$ref: '#/definitions/Problem'
headers: {}
'409':
description: Conflict
schema:
$ref: '#/definitions/Problem'
head
# --- truncated at 32 KB (633 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/newstore/refs/heads/main/openapi/newstore-external-public-api-openapi.yml