Back to API Reference

Data Publisher API - Quick Reference

Complete endpoint reference for v2.0

Base URLs

Authentication

Include JWT token in all authenticated requests:

Authorization: Bearer 

---

Core APIs

Authentication (/api/auth)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /register | Register new user | No |

| POST | /login | Login and get JWT | No |

| POST | /request-code | Request registration code | No |

| GET | /verify-token | Verify JWT token | Yes |

| POST | /logout | Logout (client-side) | Yes |

Users (/api/users)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /profile | Get user profile | Yes |

| PUT | /profile | Update profile | Yes |

| GET | /subscription | Get subscription info | Yes |

| PUT | /subscription | Update subscription | Yes |

Data Files (/api/data)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Upload data file | Yes |

| GET | / | List all files | Yes |

| GET | /:id | Get file details | Yes |

| PUT | /:id | Update file | Yes |

| DELETE | /:id | Delete file | Yes |

CSV Upload (/api/csv)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /upload | Upload CSV (multipart) | Yes |

| POST | /parse | Parse CSV content | Yes |

| GET | /preview/:id | Preview CSV data | Yes |

Documents (/api/documents)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /generate | Generate document | Yes |

| GET | /:id | Get document | Yes |

| GET | /:id/download | Download document | Yes |

| DELETE | /:id | Delete document | Yes |

---

Email & Publishing APIs

Email Templates (/api/email-templates)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create template | Yes |

| GET | / | List templates | Yes |

| GET | /:id | Get template | Yes |

| PUT | /:id | Update template | Yes |

| DELETE | /:id | Delete template | Yes |

| POST | /:id/clone | Clone template | Yes |

Email Campaigns (/api/email-campaigns)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create campaign | Yes |

| GET | / | List campaigns | Yes |

| GET | /:id | Get campaign | Yes |

| PUT | /:id | Update campaign | Yes |

| DELETE | /:id | Delete campaign | Yes |

| POST | /:id/send | Send campaign | Yes |

| GET | /:id/status | Check send status | Yes |

| POST | /:id/pause | Pause sending | Yes |

| POST | /:id/resume | Resume sending | Yes |

| POST | /:id/cancel | Cancel campaign | Yes |

| GET | /:id/analytics | Get analytics | Yes |

Email Tracking (/api/email/track)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /open/:trackingId | Track email open | No |

| GET | /click/:linkId | Track link click | No |

| POST | /reply/:campaignId | Record reply | No |

Email Auth (/api/email/auth)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /outlook/authorize | Start OAuth flow | Yes |

| GET | /outlook/callback | OAuth callback | No |

| POST | /outlook/token | Exchange code for token | Yes |

| GET | /status | Get connection status | Yes |

| POST | /disconnect | Disconnect account | Yes |

Email Operations (/api/email)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /send | Send single email | Yes |

| POST | /send-batch | Send batch emails | Yes |

| GET | /sent | List sent emails | Yes |

| GET | /analytics/:id | Email analytics | Yes |

HTML Email Packages (/api/html-email-package)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create email package | Yes |

| GET | / | List packages | Yes |

| GET | /:id | Get package | Yes |

| DELETE | /:id | Delete package | Yes |

Email Publishing Exports (/api/email-publishing-exports)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create export config | Yes |

| GET | / | List exports | Yes |

| GET | /:id | Get export | Yes |

| PUT | /:id | Update export | Yes |

| DELETE | /:id | Delete export | Yes |

| POST | /:id/execute | Execute export | Yes |

---

Data Integration APIs

Google Sheets (/api/google)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /authorize | Start OAuth | Yes |

| GET | /callback | OAuth callback | No |

| GET | /sheets | List spreadsheets | Yes |

| GET | /sheets/:id | Get sheet data | Yes |

| POST | /sheets/:id/import | Import to CSV | Yes |

| POST | /disconnect | Disconnect account | Yes |

Microsoft Excel (/api/microsoft)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /authorize | Start OAuth | Yes |

| GET | /callback | OAuth callback | No |

| GET | /workbooks | List workbooks | Yes |

| GET | /workbooks/:id | Get workbook data | Yes |

| POST | /workbooks/:id/import | Import to CSV | Yes |

| POST | /disconnect | Disconnect account | Yes |

SQL Server (/api/sqlserver)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /connect | Test connection | Yes |

| POST | /query | Execute query | Yes |

| GET | /tables | List tables | Yes |

| POST | /import | Import table to CSV | Yes |

| GET | /connections | List saved connections | Yes |

| DELETE | /connections/:id | Delete connection | Yes |

Data Sources (/api/datasources)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create data source | Yes |

| GET | / | List sources | Yes |

| GET | /:id | Get source | Yes |

| PUT | /:id | Update source | Yes |

| DELETE | /:id | Delete source | Yes |

| POST | /:id/test | Test connection | Yes |

| POST | /:id/refresh | Refresh data | Yes |

Data Sync (/api/sync)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create sync schedule | Yes |

| GET | / | List schedules | Yes |

| GET | /:id | Get schedule | Yes |

| PUT | /:id | Update schedule | Yes |

| DELETE | /:id | Delete schedule | Yes |

| POST | /:id/run | Run sync now | Yes |

| GET | /:id/history | Sync history | Yes |

---

Advanced Features

Word Templates (/api/word-templates)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Upload template | Yes |

| GET | / | List templates | Yes |

| GET | /:id | Get template | Yes |

| DELETE | /:id | Delete template | Yes |

| POST | /:id/generate | Generate document | Yes |

Image Library (/api/images)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /upload | Upload image | Yes |

| GET | / | List images | Yes |

| GET | /:id | Get image | Yes |

| DELETE | /:id | Delete image | Yes |

| GET | /serve/:id | Serve image file | No |

Sample Library (/api/sample-library)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /templates | List sample templates | Yes |

| GET | /data | List sample data | Yes |

| POST | /import/:id | Import sample | Yes |

Domains (/api/domains)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create domain | Yes |

| GET | / | List domains | Yes |

| GET | /:id | Get domain | Yes |

| PUT | /:id | Update domain | Yes |

| DELETE | /:id | Delete domain | Yes |

Data Sets (/api/data-sets)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | / | Create data set | Yes |

| GET | / | List data sets | Yes |

| GET | /:id | Get data set | Yes |

| PUT | /:id | Update data set | Yes |

| DELETE | /:id | Delete data set | Yes |

| POST | /:id/load | Load data | Yes |

| POST | /:id/run | Run data set | Yes |

HTML Conversion (/api/html-conversion)

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /docx-to-html | Convert DOCX to HTML | Yes |

| POST | /html-to-docx | Convert HTML to DOCX | Yes |

---

Utility Endpoints

Health Check

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| GET | /health | API health | No |

| GET | /health/database | Database health | No |

Claude Coop

| Method | Endpoint | Description | Auth |

|--------|----------|-------------|------|

| POST | /claude-coop/analyze | AI analysis | Yes |

| POST | /claude-coop/suggest | Get suggestions | Yes |

---

Standard Query Parameters

Many list endpoints support these query parameters:

Example:

GET /api/email-campaigns?limit=20&offset=40&status=completed&sort=createdAt&order=desc

---

Standard Response Format

Success

{

"success": true,

"data": { },

"message": "Operation completed"

}

Error

{

"success": false,

"error": "Error message",

"details": { }

}

---

HTTP Status Codes

---

Rate Limits

---

Content Types

---

Size Limits

---

Pagination Example

let offset = 0;

const limit = 50;

let allCampaigns = [];

while (true) {

const response = await fetch(

http://localhost:3001/api/email-campaigns?limit=${limit}&offset=${offset},

{ headers: { 'Authorization': Bearer ${token} } }

);

const { campaigns } = await response.json();

if (campaigns.length === 0) break;

allCampaigns.push(...campaigns);

offset += limit;

}

console.log('Total campaigns:', allCampaigns.length);

---

Error Handling Example

async function makeAPICall() {

try {

const response = await fetch('http://localhost:3001/api/data', {

method: 'POST',

headers: {

'Authorization': Bearer ${token},

'Content-Type': 'application/json'

},

body: JSON.stringify({ /* data */ })

});

if (!response.ok) {

const error = await response.json();

if (response.status === 401) {

// Token expired - redirect to login

redirectToLogin();

} else if (response.status === 429) {

// Rate limited - wait and retry

await wait(60000);

return makeAPICall();

} else {

// Other error

console.error('API Error:', error.error);

}

return null;

}

return await response.json();

} catch (error) {

console.error('Network error:', error);

return null;

}

}

---

Postman Collection

Download our Postman collection for easy API testing:

https://datapublisher.io/downloads/DataPublisher-API.postman_collection.json

---

SDKs (Coming Soon)

---

Support