Quissly ## Sections • [Services](https://developers.quissly.com/services.md): This API Documentation covers two main functionalities: QSearch request - for retrieving products based on user query in production. QChat request - for retrieving products or getting an AI response based on user message in production. Catalog management - for adding, updating, or deleting items to the catalog. The add method can also be used for initial catalog creation. Supports batch operations for efficient data management. Authorization & Security For enhanced security, all API requests must include two mandatory authentication components : Bearer Token – Sent in the Authorization header. Encrypted Signature – Sent in the X-Signature header. How the Signature Works The client generates an RSA key pair (2048-bit) at the start of the service (can be redone anytime while the service is active with proper notice) The client signs the query and current timestamp (ISO 8601 format with timezone) separated by “.” using its private key . The encrypted signature is sent in the X-Signature header. The server performs the following validations: Quissly uses the same timestamp shared in the body to Validate the timestamp : Ensures the timestamp is in ISO 8601 format . Checks if the timestamp is within <1 minute of the server time. Quissly uses the client's public key (previously shared with Quissly) to Verify the signature to prevent tampering. If any of these validations fail, the request is rejected . E ncryption Standards Parameter Requirement Encryption Algorithm RSA Key Size 2048-bit Signature Hashing Algorithm SHA-256 Timestamp Format ISO 8601 with timezone ( YYYY-MM-DDTHH:MM:SS±HH:MM ) Allowed Time Drift <1 minute Public Key Storage Must be shared with Quissly in advance Error Handling If the security protocol is not followed , the server will respond with: Error Code Description 400 Bad Request Timestamp missing or expired. 401 Unauthorized Invalid or missing Bearer Token and/or Signature. 402 Payment Required The service payment is past due. 403 Forbidden API KEY is valid, but signature verification failed for the account or a specific service is not available for the account. This security mechanism ensures: ✅ Protection against unauthorized access ✅ Prevention of request tampering ✅ Mitigation of replay attacks Token Management Tokens must be manually refreshed. Ensure proper storage and renewal to avoid authentication errors. • [QSearch](https://developers.quissly.com/search.md): Search products based on user queries. Queries are matched with the catalog and returned in a list format listed from most relevant to least relevant. v1beta version is no longer supported for QSearch. Check v2 version • [events](https://developers.quissly.com/search/events.md) • [QChat](https://developers.quissly.com/chat.md): Search products based on user queries. Queries are matched with the catalog and returned in a list format listed from most relevant to least relevant. • [Quick](https://developers.quissly.com/quick.md): Get quick suggestions from Quissly to get fuzzy matches without additional cost, these requests will not count towards monthly quotas and will not incur additional charges. Please, be advised that abuse of the service is prohibited and the service is free of charge as a token of appreciation towards our customers in all plans, but we expect honest usage in return as well. • [Operations](https://developers.quissly.com/operations.md): The sync frequency and method is subject to agreement with the customer. Catalog Management API Endpoint Provided by Quissly This is our preferred way to manage catalog, and it gives you full control over your catalog. The following catalog operations are available: POST : add products PUT : update products DELETE : delete products GET : status check Our system will handle all the requests, and you can always check the status of the request with GET /status method. Pricing Operations for Add and Update for the first 20000 items are free each month for the Basic plan, after which the cost is $0.015/item. Exception : for Update operation, only text description and image updates are considered, changes in the metadata are not counted. Delete Operation is free for all authorized accounts. To avoid server abuse, there are further restrictions on the operations: A maximum of 1000 items can be requested to be added or updated as part of an individual operation request. No more than 20 operations can be active at any given point in time. Processing Time It takes ~ 1hr / 50,000 items to be processed for Add and Update operations. Alternative Approach: Catalog Sync API Endpoint Provided by Client This approach is not recommended and requires a custom agreement between you and Quissly. Provide your catalog API endpoint and credentials. We will periodically fetch updates from your API and sync the catalog. • [Status Check](https://developers.quissly.com/status.md): Add new items to the search catalog. Input format should be the list of dictionaries. • [Add Products](https://developers.quissly.com/create.md): Add new items to the search catalog. Input format should be the list of dictionaries. • [Update Products](https://developers.quissly.com/update.md): Update existing products. At least one field other than sku should be provided. • [Delete Products](https://developers.quissly.com/delete.md): Delete redundant products. • [Quissly Chat Middleware](https://developers.quissly.com/quissly-chat-middleware.md): Chat API middleware for Quissly • [Upload Document](https://developers.quissly.com/documents/upload-document.md) • [Get Document](https://developers.quissly.com/documents/get-document.md) • [Update Document](https://developers.quissly.com/documents/update-document.md) • [Delete Document](https://developers.quissly.com/documents/delete-document.md) • [Get Download Url](https://developers.quissly.com/documents/get-download-url.md) • [Get Project Documents](https://developers.quissly.com/documents/get-project-documents.md) • [Browse Storage](https://developers.quissly.com/documents/browse-storage.md) • [Search Documents](https://developers.quissly.com/documents/search-documents.md) • [Rename Document](https://developers.quissly.com/documents/rename-document.md) • [Replace Document File](https://developers.quissly.com/documents/replace-document-file.md) • [Update Document Permissions](https://developers.quissly.com/documents/update-document-permissions.md) • [Delete Folder](https://developers.quissly.com/documents/delete-folder.md) • [Quissly Chat Middleware](https://developers.quissly.com/quissly-chat-middleware-1.md): Chat API middleware for Quissly • [Upload Document](https://developers.quissly.com/documents-1/upload-document-1.md) • [Get Document](https://developers.quissly.com/documents-1/get-document-1.md) • [Update Document](https://developers.quissly.com/documents-1/update-document-1.md) • [Delete Document](https://developers.quissly.com/documents-1/delete-document-1.md) • [Get Download Url](https://developers.quissly.com/documents-1/get-download-url-1.md) • [Get Project Documents](https://developers.quissly.com/documents-1/get-project-documents-1.md) • [Browse Storage](https://developers.quissly.com/documents-1/browse-storage-1.md) • [Search Documents](https://developers.quissly.com/documents-1/search-documents-1.md) • [Rename Document](https://developers.quissly.com/documents-1/rename-document-1.md) • [Replace Document File](https://developers.quissly.com/documents-1/replace-document-file-1.md) • [Update Document Permissions](https://developers.quissly.com/documents-1/update-document-permissions-1.md) • [Delete Folder](https://developers.quissly.com/documents-1/delete-folder-1.md) • [Documents API Specification [cite: 1]](https://developers.quissly.com/documents-api-specification-cite-1.md): This module handles the upload, retrieval, modification, and deletion of documents within the system storage. [cite: 1] • [6. Get Documents [cite: 14]](https://developers.quissly.com/documents-2/6-get-documents-cite-14.md): Retrieves a paginated list of all accessible documents. [cite: 14] (No specific path or body parameters required based on current rules). [cite: 15] • [7. Browse Storage [cite: 16]](https://developers.quissly.com/documents-2/7-browse-storage-cite-16.md): Returns a hierarchical view of documents and folders in the storage directory. [cite: 16] (No specific path or body parameters required based on current rules). [cite: 17] • [12. Delete Folder [cite: 28]](https://developers.quissly.com/documents-2/12-delete-folder-cite-28.md): Removes an entire folder and its contents from the storage hierarchy. [cite: 28] • [8. Search Documents [cite: 18]](https://developers.quissly.com/documents-2/8-search-documents-cite-18.md): Searches for documents based on query strings or content matches. [cite: 18] • [1. Upload Document [cite: 4]](https://developers.quissly.com/documents-2/1-upload-document-cite-4.md): Uploads a new document to the system using either a base64 encoded string or a JSON object. [cite: 4] • [2. Get Document [cite: 6]](https://developers.quissly.com/documents-2/external_id/2-get-document-cite-6.md): Retrieves a specific document's metadata based on its external ID. [cite: 6] • [3. Update Document [cite: 8]](https://developers.quissly.com/documents-2/external_id/3-update-document-cite-8.md): Updates the metadata or general properties of an existing document. [cite: 8] • [4. Delete Document [cite: 10]](https://developers.quissly.com/documents-2/external_id/4-delete-document-cite-10.md): Permanently deletes a document from the system. [cite: 10] • [10. Replace Document Content [cite: 22]](https://developers.quissly.com/documents-2/external_id/10-replace-document-content-cite-22.md): Overwrites the existing file content of a document with new content. [cite: 22] • [5. Get Download URL [cite: 12]](https://developers.quissly.com/documents-2/external_id/5-get-download-url-cite-12.md): Generates and returns a secure, temporary URL for downloading the specified document. [cite: 12] • [11. Update Document Permissions [cite: 25]](https://developers.quissly.com/documents-2/external_id/11-update-document-permissions-cite-25.md): Modifies the access control rules and permissions for a specific document. [cite: 25] • [9. Rename Document [cite: 19]](https://developers.quissly.com/documents-2/external_id/9-rename-document-cite-19.md): Updates the display name or title of an existing document. [cite: 19] • [Documents API Specification [cite: 1]](https://developers.quissly.com/documents-api-specification-cite-1-1.md): This module handles the upload, retrieval, modification, and deletion of documents within the system storage. [cite: 1] • [6. Get Documents [cite: 14]](https://developers.quissly.com/documents-3/6-get-documents-cite-14-1.md): Retrieves a paginated list of all accessible documents. [cite: 14] (No specific path or body parameters required based on current rules). [cite: 15] • [7. Browse Storage [cite: 16]](https://developers.quissly.com/documents-3/7-browse-storage-cite-16-1.md): Returns a hierarchical view of documents and folders in the storage directory. [cite: 16] (No specific path or body parameters required based on current rules). [cite: 17] • [12. Delete Folder [cite: 28]](https://developers.quissly.com/documents-3/12-delete-folder-cite-28-1.md): Removes an entire folder and its contents from the storage hierarchy. [cite: 28] • [8. Search Documents [cite: 18]](https://developers.quissly.com/documents-3/8-search-documents-cite-18-1.md): Searches for documents based on query strings or content matches. [cite: 18] • [1. Upload Document [cite: 4]](https://developers.quissly.com/documents-3/1-upload-document-cite-4-1.md): Uploads a new document to the system using either a base64 encoded string or a JSON object. [cite: 4] • [2. Get Document [cite: 6]](https://developers.quissly.com/documents-3/external_id-1/2-get-document-cite-6-1.md): Retrieves a specific document's metadata based on its external ID. [cite: 6] • [3. Update Document [cite: 8]](https://developers.quissly.com/documents-3/external_id-1/3-update-document-cite-8-1.md): Updates the metadata or general properties of an existing document. [cite: 8] • [4. Delete Document [cite: 10]](https://developers.quissly.com/documents-3/external_id-1/4-delete-document-cite-10-1.md): Permanently deletes a document from the system. [cite: 10] • [10. Replace Document Content [cite: 22]](https://developers.quissly.com/documents-3/external_id-1/10-replace-document-content-cite-22-1.md): Overwrites the existing file content of a document with new content. [cite: 22] • [5. Get Download URL [cite: 12]](https://developers.quissly.com/documents-3/external_id-1/5-get-download-url-cite-12-1.md): Generates and returns a secure, temporary URL for downloading the specified document. [cite: 12] • [11. Update Document Permissions [cite: 25]](https://developers.quissly.com/documents-3/external_id-1/11-update-document-permissions-cite-25-1.md): Modifies the access control rules and permissions for a specific document. [cite: 25] • [9. Rename Document [cite: 19]](https://developers.quissly.com/documents-3/external_id-1/9-rename-document-cite-19-1.md): Updates the display name or title of an existing document. [cite: 19]