Back to API Reference

Sample Library API

Browse and copy pre-built sample templates and data for quick project starts.

---

Base URL

https://app.datapublisher.io/api/sample-library

---

Authentication

All endpoints require JWT authentication via Authorization: Bearer header.

---

Overview

The Sample Library API provides:

Sample Categories:

---

Browse Samples

List All Samples

Get all available sample templates.

Endpoint: GET /samples

Headers:

Authorization: Bearer 

Query Parameters:

Response (200 OK):

{

"success": true,

"samples": [

{

"id": "sample-uuid-1",

"name": "Sales Report Q4 2025",

"description": "Quarterly sales performance report with charts",

"category": "business-reports",

"industry": "sales",

"thumbnail": "https://app.datapublisher.io/samples/thumbnails/sales-report-q4.png",

"previewUrl": "https://app.datapublisher.io/samples/previews/sales-report-q4.pdf",

"features": [

"Executive summary section",

"Sales charts and graphs",

"Regional breakdown",

"Year-over-year comparison"

],

"dataFields": 12,

"dataRows": 50,

"complexity": "medium",

"estimatedSetupTime": "5 minutes"

},

{

"id": "sample-uuid-2",

"name": "Employee Handbook",

"description": "Complete employee handbook template",

"category": "hr-documents",

"industry": "human-resources",

"thumbnail": "https://app.datapublisher.io/samples/thumbnails/employee-handbook.png",

"previewUrl": "https://app.datapublisher.io/samples/previews/employee-handbook.pdf",

"features": [

"Company policies",

"Benefits overview",

"Code of conduct",

"Emergency procedures"

],

"dataFields": 8,

"dataRows": 1,

"complexity": "simple",

"estimatedSetupTime": "2 minutes"

}

],

"totalCount": 2,

"categories": [

"business-reports",

"sales-documents",

"marketing-materials",

"financial-reports",

"hr-documents",

"legal-documents",

"educational-materials"

]

}

---

Get Sample Details

Get detailed information about a specific sample.

Endpoint: GET /samples/:sampleId

Headers:

Authorization: Bearer 

Path Parameters:

Response (200 OK):

{

"success": true,

"sample": {

"id": "sample-uuid-1",

"name": "Sales Report Q4 2025",

"description": "Quarterly sales performance report with charts",

"longDescription": "A comprehensive quarterly sales report template featuring executive summary, detailed sales analytics, regional performance breakdowns, and year-over-year comparisons. Perfect for sales managers and executives.",

"category": "business-reports",

"industry": "sales",

"thumbnail": "https://app.datapublisher.io/samples/thumbnails/sales-report-q4.png",

"previewImages": [

"https://app.datapublisher.io/samples/previews/sales-report-q4-page1.png",

"https://app.datapublisher.io/samples/previews/sales-report-q4-page2.png"

],

"previewPdf": "https://app.datapublisher.io/samples/previews/sales-report-q4.pdf",

"features": [

"Executive summary section",

"Sales charts and graphs",

"Regional breakdown",

"Year-over-year comparison"

],

"manifest": {

"templateName": "Sales Report Q4 Template.docx",

"csvFileName": "sales-data-q4.csv",

"dataFields": [

{ "name": "SalesRep", "type": "string", "description": "Sales representative name" },

{ "name": "Region", "type": "string", "description": "Sales region" },

{ "name": "Q4Sales", "type": "number", "description": "Q4 total sales" },

{ "name": "Q3Sales", "type": "number", "description": "Q3 total sales for comparison" },

{ "name": "YoYGrowth", "type": "percentage", "description": "Year-over-year growth rate" }

],

"dataRows": 50,

"templateSize": "245 KB",

"csvSize": "15 KB"

},

"complexity": "medium",

"estimatedSetupTime": "5 minutes",

"usageCount": 1250,

"rating": 4.8,

"createdAt": "2025-12-01T00:00:00Z",

"updatedAt": "2026-01-15T10:00:00Z"

}

}

---

Get Sample Preview

Get sample preview image or PDF.

Endpoint: GET /samples/:sampleId/preview

Headers:

Authorization: Bearer 

Query Parameters:

Response (200 OK):

---

Copy Sample to Account

Copy Sample

Copy sample template and data to user's account.

Endpoint: POST /samples/:sampleId/copy

Headers:

Authorization: Bearer 

Content-Type: application/json

Request Body:

{

"templateName": "My Sales Report",

"csvFileName": "my-sales-data.csv",

"description": "Copied from Sales Report Q4 sample"

}

Response (200 OK):

{

"success": true,

"copiedResources": {

"template": {

"id": "template-uuid",

"name": "My Sales Report",

"fileName": "my-sales-report.docx",

"fileSize": 245000

},

"csvFile": {

"id": "csv-file-uuid",

"fileName": "my-sales-data.csv",

"rowCount": 50,

"columnCount": 12

}

},

"message": "Sample copied successfully to your account"

}

What Gets Copied:

  • Word template (.docx) → Your Word Templates
  • Sample CSV data → Your CSV Files
  • Ready to use immediately
  • ---

    Filter by Category

    List Categories

    Get all available sample categories.

    Endpoint: GET /categories

    Headers:

    Authorization: Bearer 

    Response (200 OK):

    {
    

    "success": true,

    "categories": [

    {

    "id": "business-reports",

    "name": "Business Reports",

    "description": "Performance reports, analytics, and dashboards",

    "sampleCount": 15,

    "icon": "📊"

    },

    {

    "id": "sales-documents",

    "name": "Sales Documents",

    "description": "Proposals, quotes, and invoices",

    "sampleCount": 12,

    "icon": "💼"

    },

    {

    "id": "marketing-materials",

    "name": "Marketing Materials",

    "description": "Brochures, flyers, and promotional content",

    "sampleCount": 10,

    "icon": "📢"

    },

    {

    "id": "financial-reports",

    "name": "Financial Reports",

    "description": "Budget reports, P&L statements, forecasts",

    "sampleCount": 8,

    "icon": "💰"

    },

    {

    "id": "hr-documents",

    "name": "HR Documents",

    "description": "Employee handbooks, policies, job descriptions",

    "sampleCount": 7,

    "icon": "👥"

    }

    ],

    "totalCategories": 5

    }

    ---

    Get Samples by Category

    Get all samples in a specific category.

    Endpoint: GET /categories/:categoryId/samples

    Headers:

    Authorization: Bearer 

    Path Parameters:

    Response: (Same structure as /samples endpoint)

    ---

    Popular Samples

    Get Popular Samples

    Get most-used samples.

    Endpoint: GET /popular

    Headers:

    Authorization: Bearer 

    Query Parameters:

    Response (200 OK):

    {
    

    "success": true,

    "popularSamples": [

    {

    "id": "sample-uuid-1",

    "name": "Sales Report Q4 2025",

    "category": "business-reports",

    "usageCount": 1250,

    "rating": 4.8,

    "thumbnail": "https://app.datapublisher.io/samples/thumbnails/sales-report-q4.png"

    }

    ],

    "totalCount": 1

    }

    ---

    Search Samples

    Search by Keyword

    Search samples by name, description, or features.

    Endpoint: GET /search

    Headers:

    Authorization: Bearer 

    Query Parameters:

    Response (200 OK):

    {
    

    "success": true,

    "query": "sales report",

    "samples": [

    {

    "id": "sample-uuid-1",

    "name": "Sales Report Q4 2025",

    "category": "business-reports",

    "relevance": 0.95,

    "matchedFields": ["name", "description", "features"]

    }

    ],

    "totalCount": 1

    }

    ---

    Rate Limiting

    ---

    Common Error Codes

    | Status Code | Description |

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

    | 400 | Invalid category or search query |

    | 401 | Unauthorized - invalid JWT |

    | 404 | Sample not found |

    | 429 | Rate limit exceeded |

    | 500 | Copy operation failed |

    ---

    Usage Examples

    JavaScript

    // List all samples
    

    async function listSamples() {

    const response = await fetch('https://app.datapublisher.io/api/sample-library/samples', {

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

    });

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

    return samples;

    }

    // Get sample details

    async function getSampleDetails(sampleId) {

    const response = await fetch(https://app.datapublisher.io/api/sample-library/samples/${sampleId}, {

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

    });

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

    return sample;

    }

    // Copy sample to account

    async function copySample(sampleId) {

    const response = await fetch(https://app.datapublisher.io/api/sample-library/samples/${sampleId}/copy, {

    method: 'POST',

    headers: {

    'Authorization': Bearer ${jwtToken},

    'Content-Type': 'application/json'

    },

    body: JSON.stringify({

    templateName: 'My Custom Name',

    csvFileName: 'my-data.csv'

    })

    });

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

    return copiedResources;

    }

    // Search samples

    async function searchSamples(query) {

    const response = await fetch(https://app.datapublisher.io/api/sample-library/search?q=${encodeURIComponent(query)}, {

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

    });

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

    return samples;

    }

    // Get samples by category

    async function getSamplesByCategory(categoryId) {

    const response = await fetch(https://app.datapublisher.io/api/sample-library/categories/${categoryId}/samples, {

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

    });

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

    return samples;

    }

    // Get popular samples

    async function getPopularSamples() {

    const response = await fetch('https://app.datapublisher.io/api/sample-library/popular?limit=10', {

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

    });

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

    return popularSamples;

    }

    ---

    Best Practices

  • Preview First: Always preview samples before copying
  • Customize: Rename templates and CSV files for your use case
  • Learn: Study sample structure for creating your own templates
  • Data: Replace sample CSV data with your actual data
  • Categories: Browse by category for relevant samples
  • Search: Use search for specific needs
  • Popular: Check popular samples for proven templates
  • ---

    Related Documentation