openapi: 3.2.0 info: title: Repsly Web Pricelists API description: The Repsly Web API (v3) is a REST interface for exchanging data with the Repsly retail execution and field sales platform. version: '3.0' contact: name: Repsly url: https://www.repsly.com servers: - url: https://api.repsly.com/v3 description: Repsly Web API v3 (production) security: - basicAuth: [] tags: - name: Price Lists description: Export and import pricelists and pricelist items. paths: /export/pricelists/: get: operationId: exportPricelists tags: - Price Lists summary: Export pricelists description: Returns the list of pricelists configured on the account. responses: '200': description: A collection of pricelists. content: application/json: schema: $ref: '#/components/schemas/GenericCollection' '401': $ref: '#/components/responses/Unauthorized' /export/pricelists/{pricelistID}: get: operationId: exportPricelistItems tags: - Price Lists summary: Export pricelist items description: Returns the items (products and prices) within a specific pricelist. parameters: - name: pricelistID in: path required: true description: The ID of the pricelist whose items to export. schema: type: integer format: int64 responses: '200': description: A collection of pricelist items. content: application/json: schema: $ref: '#/components/schemas/GenericCollection' '401': $ref: '#/components/responses/Unauthorized' /import/pricelist: post: operationId: importPricelists tags: - Price Lists summary: Import pricelists description: Insert or update pricelists and their items. Returns an importJobID for status polling. requestBody: $ref: '#/components/requestBodies/ImportBody' responses: '200': $ref: '#/components/responses/ImportAccepted' '401': $ref: '#/components/responses/Unauthorized' components: schemas: GenericCollection: type: object description: Generic export collection envelope. Each export endpoint returns an entity array plus MetaCollectionResult; entity fields are documented per resource in the Repsly reference and are modeled here. properties: MetaCollectionResult: $ref: '#/components/schemas/MetaCollectionResult' Data: type: array items: type: object additionalProperties: true ImportResult: type: object description: Result of an import (POST) call, including the job identifier. properties: importJobID: type: string status: type: string MetaCollectionResult: type: object description: Pagination metadata returned with export collections. Iterate until TotalCount is 0. properties: TotalCount: type: integer description: Total count of records in this batch (0 means no more records). LastTimeStamp: type: integer format: int64 description: Timestamp cursor for the next request (timestamp-paged endpoints). FirstID: type: integer format: int64 description: Unique ID of the first item in the list (ID-paged endpoints). LastID: type: integer format: int64 description: Unique ID of the last item in the list (ID-paged endpoints). Error: type: object properties: code: type: string message: type: string requestBodies: ImportBody: required: true description: A batch of entities to insert or update. Repsly decides per record whether to insert or update. Accepts JSON or XML; field schema depends on the entity being imported. content: application/json: schema: type: object additionalProperties: true responses: ImportAccepted: description: The import was accepted; the result includes an importJobID. content: application/json: schema: $ref: '#/components/schemas/ImportResult' Unauthorized: description: Missing or invalid Basic authentication credentials. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication over SSL. Use the API username and password from the Repsly settings page (API Settings) - these differ from your Repsly login credentials.