{ "info": { "name": "Repsly Web API (v3)", "description": "REST interface for exchanging data with the Repsly retail execution and field sales platform. Base URL: https://api.repsly.com/v3. Uses HTTP Basic authentication over SSL with API credentials from the Repsly settings page (API Settings) - not your login username/password. Export endpoints return up to 50 records per call; iterate using the returned timestamp or last-ID cursor until MetaCollectionResult.TotalCount is 0. Import (POST) endpoints insert or update records and return an importJobID to poll.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "auth": { "type": "basic", "basic": [ { "key": "username", "value": "{{apiUsername}}", "type": "string" }, { "key": "password", "value": "{{apiPassword}}", "type": "string" } ] }, "variable": [ { "key": "baseUrl", "value": "https://api.repsly.com/v3", "type": "string" }, { "key": "apiUsername", "value": "", "type": "string" }, { "key": "apiPassword", "value": "", "type": "string" } ], "item": [ { "name": "Clients", "item": [ { "name": "Export clients", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/clients/:lastTimestamp", "host": ["{{baseUrl}}"], "path": ["export", "clients", ":lastTimestamp"], "variable": [{ "key": "lastTimestamp", "value": "0" }] }, "description": "Returns up to 50 clients changed since the timestamp. Start at 0 and page using MetaCollectionResult.LastTimeStamp until TotalCount is 0." } }, { "name": "Export client notes", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/clientnotes/:lastClientNoteID", "host": ["{{baseUrl}}"], "path": ["export", "clientnotes", ":lastClientNoteID"], "variable": [{ "key": "lastClientNoteID", "value": "0" }] }, "description": "Returns up to 50 client notes with an ID greater than lastClientNoteID. Page using MetaCollectionResult.LastID until TotalCount is 0." } }, { "name": "Import clients", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "[\n {\n \"Code\": \"CLIENT-001\",\n \"Name\": \"Example Retailer\",\n \"Active\": true\n }\n]" }, "url": { "raw": "{{baseUrl}}/import/client", "host": ["{{baseUrl}}"], "path": ["import", "client"] }, "description": "Insert or update clients. Repsly decides per record whether to insert or update. Returns an importJobID." } } ] }, { "name": "Representatives", "item": [ { "name": "Export representatives", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/representatives", "host": ["{{baseUrl}}"], "path": ["export", "representatives"] }, "description": "Returns all field representatives, including territories, roles, and active status." } }, { "name": "Export users", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/users", "host": ["{{baseUrl}}"], "path": ["export", "users"] }, "description": "Returns the account's users." } }, { "name": "Export daily working time", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/dailyworkingtime/:lastDailyWorkingTimeID", "host": ["{{baseUrl}}"], "path": ["export", "dailyworkingtime", ":lastDailyWorkingTimeID"], "variable": [{ "key": "lastDailyWorkingTimeID", "value": "0" }] }, "description": "Returns up to 50 daily working time records with an ID greater than lastDailyWorkingTimeID." } } ] }, { "name": "Visits", "item": [ { "name": "Export visits", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/visits/:lastTimestamp", "host": ["{{baseUrl}}"], "path": ["export", "visits", ":lastTimestamp"], "variable": [{ "key": "lastTimestamp", "value": "0" }] }, "description": "Returns up to 50 visits changed since the timestamp. Page using MetaCollectionResult.LastTimeStamp until TotalCount is 0." } }, { "name": "Export visit schedules", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/visitschedules/:beginDateTime/:endDateTime", "host": ["{{baseUrl}}"], "path": ["export", "visitschedules", ":beginDateTime", ":endDateTime"], "variable": [{ "key": "beginDateTime", "value": "2026-07-01" }, { "key": "endDateTime", "value": "2026-07-31" }] }, "description": "Returns planned visit schedules between beginDateTime and endDateTime for all representatives." } }, { "name": "Export visit realizations", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/visit-realizations", "host": ["{{baseUrl}}"], "path": ["export", "visit-realizations"] }, "description": "Returns visit schedule realizations - how planned schedules were actually executed." } }, { "name": "Import visit schedules", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "[]" }, "url": { "raw": "{{baseUrl}}/import/schedule", "host": ["{{baseUrl}}"], "path": ["import", "schedule"] }, "description": "Insert or update visit schedules to plan representatives' routes. Returns an importJobID." } } ] }, { "name": "Products", "item": [ { "name": "Export products", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/products/:lastTimestamp", "host": ["{{baseUrl}}"], "path": ["export", "products", ":lastTimestamp"], "variable": [{ "key": "lastTimestamp", "value": "0" }] }, "description": "Returns products from the catalog. Timestamp cursor form modeled after the other export endpoints." } }, { "name": "Export product lists", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/product-lists", "host": ["{{baseUrl}}"], "path": ["export", "product-lists"] }, "description": "Returns product lists (groupings of products)." } }, { "name": "Export document types", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/documentTypes/", "host": ["{{baseUrl}}"], "path": ["export", "documentTypes", ""] }, "description": "Returns the document types configured on the account." } }, { "name": "Import products", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "[]" }, "url": { "raw": "{{baseUrl}}/import/product", "host": ["{{baseUrl}}"], "path": ["import", "product"] }, "description": "Insert or update products in the catalog. Returns an importJobID." } }, { "name": "Import product packages", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "[]" }, "url": { "raw": "{{baseUrl}}/import/package", "host": ["{{baseUrl}}"], "path": ["import", "package"] }, "description": "Insert or update product packaging definitions. Returns an importJobID." } } ] }, { "name": "Forms", "item": [ { "name": "Export forms", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/forms/:lastFormID", "host": ["{{baseUrl}}"], "path": ["export", "forms", ":lastFormID"], "variable": [{ "key": "lastFormID", "value": "0" }] }, "description": "Returns up to 50 completed forms with an ID greater than lastFormID. Page using MetaCollectionResult.LastID until TotalCount is 0." } }, { "name": "Export retail audits", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/retailaudits/:lastRetailAuditID", "host": ["{{baseUrl}}"], "path": ["export", "retailaudits", ":lastRetailAuditID"], "variable": [{ "key": "lastRetailAuditID", "value": "0" }] }, "description": "Returns up to 50 retail audits with an ID greater than lastRetailAuditID." } } ] }, { "name": "Photos", "item": [ { "name": "Export photos", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/photos/:lastPhotoID", "host": ["{{baseUrl}}"], "path": ["export", "photos", ":lastPhotoID"], "variable": [{ "key": "lastPhotoID", "value": "0" }] }, "description": "Returns up to 50 photos with an ID greater than lastPhotoID, including metadata and image URLs." } } ] }, { "name": "Pricelists", "item": [ { "name": "Export pricelists", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/pricelists/", "host": ["{{baseUrl}}"], "path": ["export", "pricelists", ""] }, "description": "Returns the list of pricelists configured on the account." } }, { "name": "Export pricelist items", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/pricelists/:pricelistID", "host": ["{{baseUrl}}"], "path": ["export", "pricelists", ":pricelistID"], "variable": [{ "key": "pricelistID", "value": "" }] }, "description": "Returns the items (products and prices) within a specific pricelist." } }, { "name": "Import pricelists", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "[]" }, "url": { "raw": "{{baseUrl}}/import/pricelist", "host": ["{{baseUrl}}"], "path": ["import", "pricelist"] }, "description": "Insert or update pricelists and their items. Returns an importJobID." } } ] }, { "name": "Purchase Orders", "item": [ { "name": "Export purchase orders", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/purchaseorders/:lastDocumentID", "host": ["{{baseUrl}}"], "path": ["export", "purchaseorders", ":lastDocumentID"], "variable": [{ "key": "lastDocumentID", "value": "0" }] }, "description": "Returns up to 50 purchase orders with a document ID greater than lastDocumentID." } }, { "name": "Update sales document status", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/import/sales-document-status", "host": ["{{baseUrl}}"], "path": ["import", "sales-document-status"] }, "description": "Post a status update back to a sales document after it is processed in the back office. Body fields modeled." } } ] }, { "name": "Import", "item": [ { "name": "Get import job status", "request": { "method": "GET", "header": [{ "key": "Accept", "value": "application/json" }], "url": { "raw": "{{baseUrl}}/export/importStatus/:importJobID", "host": ["{{baseUrl}}"], "path": ["export", "importStatus", ":importJobID"], "variable": [{ "key": "importJobID", "value": "" }] }, "description": "Returns the status of a previously submitted import job, identified by the importJobID returned from an import call." } } ] } ] }