API reference
This page covers the server-side REST API used to upload your catalog and content. For frontend integration, see the SDK reference and the React / Vue component docs.
Authentication
Section titled “Authentication”Add your Dialog private API key to the Authorization header on every request.
Authorization: MY_PRIVATE_KEYYour private key is visible in the Dialog dashboard after creating an API Integration organization. Keep it server-side — it must not be shipped to the browser.
Upload URLs
Section titled “Upload URLs”Dialog uses pre-signed S3 URLs for catalog and content uploads.
Get upload URLs
Section titled “Get upload URLs”POST https://rtbzcxkmwj.execute-api.eu-west-1.amazonaws.com/organization/catalog-upload-urlResponse:
{ "catalogUploadUrl": { "url": "your-upload-url", "fields": { "bucket": "dialog-bucket-name", "X-Amz-Algorithm": "", "key": "fileKey", "Policy": "", "X-Amz-Credential": "", "X-Amz-Date": "", "X-Amz-Signature": "", "X-Amz-Security-Token": "" } }, "pageUploadUrl": { /* same shape */ }, "blogPostUploadUrl": { /* same shape */ }}For each file, use the URL and fields to upload to Dialog’s S3 bucket. See AWS S3 pre-signed URL docs for the full flow.
Uploads
Section titled “Uploads”Catalog upload
Section titled “Catalog upload”Upload a JSON file matching the catalog schema. See Catalog schema for the full JSON Schema.
Blog upload
Section titled “Blog upload”If your site has a blog, upload an array of { title, content }:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "content": { "type": "string" } }, "required": ["title", "content"] }}Pages upload
Section titled “Pages upload”For FAQ, delivery info, and other static pages, upload an array of { title, content } (same schema as blog).
Troubleshooting
Section titled “Troubleshooting”| Status | Likely cause | Solution |
|---|---|---|
| 401 | Missing auth header | Add Authorization: YOUR_KEY |
| 403 | Invalid or expired key | Regenerate the key in dashboard |
| 400 | Payload schema mismatch | Validate against the schema |
| 500 | Server error | Email support with request ID |
What’s next
Section titled “What’s next”- Catalog schema — exact JSON shape of the catalog upload.
- SDK reference — frontend integration.