# Content Automation
Source: https://www.acrewity.com/docs/examples-content-automation
# Content Automation
Automate content workflows: scrape web pages, convert formats, and process documents at scale.
**Quick Reference:** All requests go to `POST /api/services/execute` with your API key in the `Authorization: Bearer YOUR_API_KEY` header.
---
## Web Scraping & Content Extraction
**Service:** `url-to-markdown`
Extract clean, readable content from any web page. Perfect for building knowledge bases, archiving articles, or feeding content to AI systems.
### Archive a Blog Post for Your Knowledge Base
Save an article as clean markdown for your internal documentation system.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "url-to-markdown",
"operation": "url_to_markdown",
"parameters": {
"url": "https://blog.example.com/scaling-nodejs-applications"
}
}'
```
### Extract Product Information for Comparison
Pull product details from competitor sites for market research.
```javascript
// JavaScript - Extract and process product pages
const products = ['https://competitor.com/product-a', 'https://competitor.com/product-b'];
const results = await Promise.all(products.map(async (url) => {
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'url-to-markdown',
operation: 'url_to_markdown',
parameters: { url }
})
});
return response.json();
}));
```
**Use Cases:**
AI Training DataConvert web content to clean text for fine-tuning LLMs or building RAG systems.
Documentation MigrationScrape legacy docs from old wikis or sites and convert to modern markdown format.
Content AggregationBuild automated news digests by scraping and formatting articles from multiple sources.
SEO ResearchExtract competitor content for analysis while maintaining clean, readable formatting.
---
## Link Discovery & Sitemap Generation
**Service:** `sitemap-generator`
Crawl websites to discover all links, then generate valid XML sitemaps. Useful for SEO tools, site audits, and migration planning.
### Audit a Website's Link Structure
Discover all internal and external links on a page for SEO analysis.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "sitemap-generator",
"operation": "extract_links",
"parameters": {
"url": "https://www.example.com"
}
}'
```
### Generate a Sitemap from Discovered URLs
Create a valid XML sitemap for submission to search engines.
```python
# Python - Discover links then generate sitemap
import requests
# Step 1: Extract all links
links_response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json'},
json={
'service': 'sitemap-generator',
'operation': 'extract_links',
'parameters': {'url': 'https://www.mysite.com'}
}
)
urls = links_response.json()['result']['data']['links']
# Step 2: Generate sitemap from discovered URLs
sitemap_response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json'},
json={
'service': 'sitemap-generator',
'operation': 'generate_sitemap',
'parameters': {'urls': urls}
}
)
sitemap_xml = sitemap_response.json()['result']['data']['sitemap']
```
**Use Cases:**
Broken Link DetectionExtract all links from your site, then verify each one works correctly.
Site Migration PlanningDiscover all URLs before migrating to ensure proper redirects are set up.
---
## Related Services
- [URL to Markdown](/docs/url-to-markdown) - Full service documentation
- [Sitemap Generator](/docs/sitemap-generator) - Full service documentation
---
# Services Overview
Source: https://www.acrewity.com/docs/overview
# Acrewity Services Overview
Explore our complete suite of 22 production-ready API services. All services cost **1 credit** per operation.
## Communication & Web
### [Email Access](/docs/email-access)
Send and receive emails with full SMTP/IMAP support, attachments, and HTML formatting.
### [Sitemap Generator](/docs/sitemap-generator)
Extract links from web pages to build sitemaps.
## Content Conversion
### [URL to Markdown](/docs/url-to-markdown)
Convert any web page to clean, structured Markdown format.
### [HTML to PDF](/docs/html-to-pdf)
Transform HTML content into professional PDF documents.
### [HTML to Markdown](/docs/html-to-markdown)
Convert HTML content to clean Markdown format.
### [Markdown to HTML](/docs/markdown-to-html)
Convert Markdown text to HTML with syntax highlighting support.
### [PDF to HTML](/docs/pdf-to-html)
Extract content from PDFs and convert to HTML format.
### [PDF to Markdown](/docs/pdf-to-markdown)
Extract content from PDFs and convert to Markdown format.
## Image & Media
### [Image Converter](/docs/image-converter)
Convert images between formats (JPG, PNG, WebP, GIF, BMP, TIFF) with quality control and resizing.
### [QR Code Generator](/docs/qr-code-generator)
Create QR codes in PNG or SVG format for any data.
### [Barcode Generator](/docs/barcode-generator)
Generate 1D barcodes (Code128, EAN-13, UPC-A, Code39, and more).
## Data & File Processing
### [Excel to JSON](/docs/excel-to-json)
Parse Excel spreadsheets and convert them to structured JSON data.
### [JSON to Excel](/docs/json-to-excel)
Convert JSON data into Excel spreadsheets with formatting options.
## PDF Operations
### [PDF Merge](/docs/pdf-merge)
Combine multiple PDF files into a single document.
### [PDF Extract Page](/docs/pdf-extract-page)
Extract specific pages from PDF documents.
## Text & String Utilities
### [UUID Generator](/docs/uuid-generator)
Generate unique identifiers in multiple UUID versions.
### [Regex Matcher](/docs/regex-matcher)
Advanced pattern matching and text extraction with regular expressions.
### [Text Diff](/docs/text-diff)
Compare two text strings and highlight differences line-by-line.
### [URL Encoder/Decoder](/docs/url-encoder-decoder)
Safely encode and decode URLs for transmission.
### [Markdown Table Generator](/docs/markdown-table-generator)
Generate properly formatted Markdown tables from data.
### [Timezone Converter](/docs/timezone-converter)
Convert times between any timezone with DST handling.
## Validation
### [JSON Schema Validator](/docs/json-schema-validator)
Validate JSON data against schemas with detailed error reporting.
---
**All services use the unified endpoint:** `POST /api/services/execute`
**Authentication:** Bearer token with API key
[View API Reference →](/docs/api-reference)
---
# Document Processing
Source: https://www.acrewity.com/docs/examples-document-processing
# Document Processing
Convert between document formats: PDF, HTML, Markdown, and Excel. Automate report generation and document workflows.
**Quick Reference:** All requests go to `POST /api/services/execute` with your API key in the `Authorization: Bearer YOUR_API_KEY` header.
---
## Generate PDF Reports from HTML
**Service:** `html-to-pdf`
Convert HTML templates to professional PDF documents. Perfect for invoices, reports, certificates, and any printable content.
### Generate an Invoice PDF
Create a downloadable invoice from your billing data.
```javascript
// JavaScript - Generate invoice PDF
const invoiceHtml = `
| Description | Qty | Price | Total |
| Web Design Services | 1 | $500.00 | $500.00 |
| Logo Design | 1 | $150.00 | $150.00 |
Total: $650.00
`;
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'html-to-pdf',
operation: 'convert_pdf',
parameters: {
html: invoiceHtml,
format: 'A4',
margin: { top: '20mm', bottom: '20mm', left: '15mm', right: '15mm' }
}
})
});
const { result } = await response.json();
// result.data.pdf contains base64-encoded PDF
```
**Use Cases:**
Automated ReportsGenerate weekly/monthly PDF reports from your dashboard data automatically.
Certificates & DiplomasCreate personalized certificates for course completions or achievements.
Contracts & AgreementsGenerate legal documents from templates with customer-specific details.
Shipping LabelsCreate printable shipping labels with barcodes and address information.
---
## Extract Data from PDFs
**Services:** `pdf-to-markdown`, `pdf-to-html`
Extract text and structure from PDF documents. Use for document ingestion, search indexing, or content migration.
### Extract Text from an Uploaded Contract
Process a user-uploaded PDF to extract its content for analysis.
```python
# Python - Extract PDF content
import requests
import base64
# Read the PDF file
with open('contract.pdf', 'rb') as f:
pdf_base64 = base64.b64encode(f.read()).decode()
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'pdf-to-markdown',
'operation': 'convert',
'parameters': {
'file': pdf_base64
}
}
)
result = response.json()
markdown_content = result['result']['data']['markdown']
page_count = result['result']['data']['pageCount']
print(f"Extracted {page_count} pages")
print(markdown_content)
```
**Use Cases:**
Document SearchExtract PDF text to build searchable document indexes for your application.
AI Document AnalysisConvert PDFs to text for processing with LLMs for summarization or Q&A.
---
## PDF Page Manipulation
**Services:** `pdf-merge`, `pdf-extract-page`
Combine multiple PDFs into one, or extract specific pages. Essential for document assembly workflows.
### Merge Contract with Signature Page
Combine the main contract PDF with a separately signed signature page.
```javascript
// JavaScript - Merge two PDFs
const contractPdf = await readFileAsBase64('contract.pdf');
const signaturePdf = await readFileAsBase64('signature-page.pdf');
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'pdf-merge',
operation: 'merge',
parameters: {
source_pdf: contractPdf,
target_pdf: signaturePdf
}
})
});
const { result } = await response.json();
// result.data.pdf contains the merged PDF
```
### Extract Cover Page from a Report
Pull out just the first page for a thumbnail or preview.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "pdf-extract-page",
"operation": "extract",
"parameters": {
"pdf": "BASE64_ENCODED_PDF",
"page_numbers": [1]
}
}'
```
---
## Related Services
- [HTML to PDF](/docs/html-to-pdf) - Full service documentation
- [PDF to Markdown](/docs/pdf-to-markdown) - Full service documentation
- [PDF to HTML](/docs/pdf-to-html) - Full service documentation
- [PDF Merge](/docs/pdf-merge) - Full service documentation
- [PDF Extract Page](/docs/pdf-extract-page) - Full service documentation
---
# Data Transformation
Source: https://www.acrewity.com/docs/examples-data-transformation
# Data Transformation
Convert between data formats, validate structures, and transform content for different systems.
**Quick Reference:** All requests go to `POST /api/services/execute` with your API key in the `Authorization: Bearer YOUR_API_KEY` header.
---
## Excel/JSON Conversion
**Services:** `excel-to-json`, `json-to-excel`
Convert between Excel spreadsheets and JSON. Perfect for importing data from users or exporting reports they can open in Excel.
### Import User-Uploaded Spreadsheet
Process an Excel file uploaded by a user to import their data.
```python
# Python - Parse uploaded Excel file
import requests
import base64
def process_excel_upload(file_bytes):
file_base64 = base64.b64encode(file_bytes).decode()
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'excel-to-json',
'operation': 'read_excel',
'parameters': {
'file': file_base64
}
}
)
result = response.json()
sheets = result['result']['data']['sheets']
# Access each sheet's data
for sheet_name, sheet_data in sheets.items():
rows = sheet_data['detectedTable']['asObjects']
print(f"Sheet: {sheet_name}")
for row in rows:
print(f" {row}")
```
### Export Data as Downloadable Excel (Single Sheet)
Generate an Excel file from your database for users to download.
```javascript
// JavaScript - Create Excel export
const salesData = [
{ product: 'Widget Pro', quantity: 150, revenue: 4500, region: 'North' },
{ product: 'Widget Basic', quantity: 320, revenue: 3200, region: 'South' },
{ product: 'Widget Pro', quantity: 89, revenue: 2670, region: 'West' }
];
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-to-excel',
operation: 'create_excel',
parameters: {
data: salesData,
sheetName: 'Sales Report Q4'
}
})
});
const { result } = await response.json();
// result.data.content is base64-encoded .xlsx file
// result.data.downloadUrl provides a direct download link
```
**With Styling (headerStyle, columnStyles):**
```javascript
// JavaScript - Styled single-sheet Excel
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-to-excel',
operation: 'create_excel',
parameters: {
data: salesData,
sheetName: 'Sales Report Q4',
headerStyle: {
bold: true,
fill: '#4472C4',
fontColor: '#FFFFFF',
freeze: true // Freeze header row
},
columnStyles: {
product: { width: 25 },
revenue: { numberFormat: '$#,##0', align: 'right', bold: true }
}
}
})
});
```
### Create Multi-Sheet Excel Workbook
Generate an Excel file with multiple worksheets - perfect for comprehensive reports.
**Simple Format (arrays of objects):**
```javascript
// JavaScript - Create multi-sheet workbook with arrays
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-to-excel',
operation: 'create_multi_sheet',
parameters: {
sheets: {
'Sales Q4': [
{ product: 'Widget Pro', quantity: 150, revenue: 4500 },
{ product: 'Widget Basic', quantity: 320, revenue: 3200 }
],
'Inventory': [
{ item: 'Widget Pro', stock: 500, warehouse: 'A1' },
{ item: 'Widget Basic', stock: 1200, warehouse: 'B2' }
]
}
}
})
});
const { result } = await response.json();
// result.data.downloadUrl provides a direct download link
```
**With `detectedTable` and `range` (for precise positioning):**
When you need tables to start at specific cells (e.g., below a header or metadata), use the `detectedTable` format with a `range` parameter:
```javascript
// JavaScript - Position tables at specific cells
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-to-excel',
operation: 'create_multi_sheet',
parameters: {
sheets: {
'Report': {
cells: {
'A1': { value: 'Monthly Sales Report' },
'A2': { value: 'Generated: 2024-01-15' }
},
detectedTable: {
headers: ['Product', 'Quantity', 'Revenue'],
rows: [
{ Product: 'Widget Pro', Quantity: 150, Revenue: 4500 },
{ Product: 'Widget Basic', Quantity: 320, Revenue: 3200 }
],
range: 'A4' // Table starts at row 4, below the header
}
}
}
}
})
});
```
The `range` parameter accepts Excel cell references like `"A1"`, `"B5"`, or `"C10"` to position your table. See [JSON to Excel documentation](/docs/json-to-excel) for all supported formats.
### Create Professional-Looking Excel with Styling
Add formatting like bold headers, colors, column widths, and freeze panes to create polished Excel exports.
**Basic Styled Report:**
```javascript
// JavaScript - Create styled Excel report
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-to-excel',
operation: 'create_multi_sheet',
parameters: {
sheets: {
'Sales Report': {
detectedTable: {
headers: ['Product', 'Description', 'Qty', 'Unit Price', 'Total'],
rows: [
{ Product: 'WP-001', Description: 'Widget Pro with extended features', Qty: 100, 'Unit Price': 29.99, Total: 2999 },
{ Product: 'WB-001', Description: 'Widget Basic', Qty: 250, 'Unit Price': 19.99, Total: 4997.50 }
],
headerStyle: {
bold: true,
fill: '#4472C4',
fontColor: '#FFFFFF',
freeze: true
},
columnStyles: {
Description: { wrap: true, width: 40 },
'Unit Price': { numberFormat: '$#,##0.00', align: 'right' },
Total: { numberFormat: '$#,##0.00', bold: true, align: 'right' }
}
}
}
}
}
})
});
```
**Invoice with Title and Styled Table:**
```python
# Python - Create styled invoice
import requests
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'json-to-excel',
'operation': 'create_multi_sheet',
'parameters': {
'useCells': True,
'sheets': {
'Invoice': {
'cells': {
'A1': {
'value': 'INVOICE',
'style': {'bold': True, 'fontSize': 24, 'fill': '#1F4E79', 'fontColor': '#FFFFFF'}
},
'A2': {'value': 'Invoice #: INV-2024-001', 'style': {'fontSize': 11}},
'A3': {'value': 'Date: January 15, 2024', 'style': {'fontSize': 11}},
'D1': {'value': 'Acme Corp', 'style': {'bold': True, 'fontSize': 14, 'align': 'right'}},
'D2': {'value': '123 Business St', 'style': {'align': 'right'}}
},
'detectedTable': {
'headers': ['Item', 'Description', 'Qty', 'Unit Price', 'Total'],
'rows': [
{'Item': 'WP-001', 'Description': 'Widget Pro', 'Qty': 10, 'Unit Price': 29.99, 'Total': 299.90},
{'Item': 'GB-001', 'Description': 'Gadget Basic', 'Qty': 5, 'Unit Price': 49.99, 'Total': 249.95}
],
'range': 'A6',
'headerStyle': {
'bold': True,
'fill': '#4472C4',
'fontColor': '#FFFFFF',
'align': 'center'
},
'columnStyles': {
'Description': {'wrap': True, 'width': 45},
'Unit Price': {'numberFormat': '$#,##0.00', 'align': 'right'},
'Total': {'numberFormat': '$#,##0.00', 'bold': True, 'align': 'right'}
}
},
'rowStyles': {
'1': {'height': 30}
}
}
}
}
}
)
```
**Style Properties:**
- **Font:** `bold`, `italic`, `fontSize`, `fontColor` (hex)
- **Cell:** `fill` (background hex), `align` (left/center/right), `valign` (top/middle/bottom), `wrap`, `border` (thin/medium/thick)
- **Numbers:** `numberFormat` ($#,##0.00, yyyy-mm-dd, etc.)
- **Layout:** `width` (column), `height` (row), `freeze` (header row)
See [JSON to Excel - Cell Styling](/docs/json-to-excel#cell-styling) for the complete style reference.
### Round-Trip: Read Excel, Modify, Write Back
Read an Excel file, modify the data, and save it back - preserving the multi-sheet structure and table positions.
```python
# Python - Round-trip Excel modification
import requests
import base64
# Step 1: Read the original Excel file
with open('original.xlsx', 'rb') as f:
file_base64 = base64.b64encode(f.read()).decode()
read_response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json'},
json={
'service': 'excel-to-json',
'operation': 'read_excel',
'parameters': {'file': file_base64}
}
)
sheets_data = read_response.json()['result']['data']['sheets']
# Step 2: Modify the data
# The sheets_data contains detectedTable with headers, rows, and range
for sheet_name, sheet in sheets_data.items():
if 'detectedTable' in sheet:
# Modify existing rows
for row in sheet['detectedTable']['rows']:
row['processed'] = True # Add a new column
# The 'range' property (e.g., "A5") is preserved,
# so the table will be written at the same position
# Step 3: Write back to Excel - tables stay at original positions
write_response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json'},
json={
'service': 'json-to-excel',
'operation': 'create_multi_sheet',
'parameters': {'sheets': sheets_data}
}
)
# Save the modified file
modified_excel = base64.b64decode(write_response.json()['result']['data']['content'])
with open('modified.xlsx', 'wb') as f:
f.write(modified_excel)
```
**Important:** The `excel-to-json` service returns `detectedTable` objects with a `range` property indicating where the table was found. When you pass this back to `json-to-excel`, the table will be written at that same position, preserving layout.
### Preserve Cell Positions and Formulas
For spreadsheets with formulas or specific cell layouts, use `useCells` to preserve exact cell positions:
```javascript
// JavaScript - Preserve formulas during round-trip
const fs = require('fs');
// Step 1: Read Excel with cell-level data
const fileBase64 = fs.readFileSync('budget.xlsx').toString('base64');
const readResponse = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'excel-to-json',
operation: 'read_excel',
parameters: { file: fileBase64 }
})
});
const { result } = await readResponse.json();
const sheets = result.data.sheets;
// Step 2: Modify cell values (formulas in cells like B4 will recalculate)
sheets['Budget'].cells['B2'].value = 1800; // Update rent amount
// Step 3: Write back preserving cell positions and formulas
const writeResponse = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-to-excel',
operation: 'create_multi_sheet',
parameters: {
sheets: sheets,
useCells: true, // Use exact cell positions
preserveFormulas: true // Keep formulas like =SUM(B2:B3)
}
})
});
// Formula cells will recalculate when opened in Excel
```
**Use Cases:**
Bulk Data ImportLet users upload spreadsheets to bulk-import contacts, products, or other data.
Report DownloadsOffer "Export to Excel" buttons for analytics dashboards and reports.
Data MigrationConvert legacy Excel-based workflows to modern JSON-based systems.
Multi-Sheet WorkbooksCreate complex Excel files with multiple sheets for comprehensive reports.
---
## JSON Schema Validation
**Service:** `json-schema-validator`
Validate incoming data against JSON schemas. Get detailed error messages when data doesn't match expected structure.
### Validate API Webhook Payload
Ensure incoming webhook data matches your expected format before processing.
```javascript
// JavaScript - Validate webhook payload
const webhookPayload = req.body;
const userSchema = {
type: 'object',
properties: {
event: { type: 'string', enum: ['user.created', 'user.updated', 'user.deleted'] },
timestamp: { type: 'string', format: 'date-time' },
data: {
type: 'object',
properties: {
id: { type: 'string', pattern: '^[a-f0-9-]{36}$' },
email: { type: 'string', format: 'email' },
name: { type: 'string', minLength: 1, maxLength: 100 }
},
required: ['id', 'email']
}
},
required: ['event', 'timestamp', 'data']
};
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'json-schema-validator',
operation: 'validate_json',
parameters: {
data: webhookPayload,
schema: userSchema
}
})
});
const { result } = await response.json();
if (!result.data.valid) {
console.error('Invalid payload:', result.data.errors);
return res.status(400).json({ error: 'Invalid webhook payload' });
}
```
**Use Cases:**
Config File ValidationValidate user-provided configuration files against expected schemas.
Form Data VerificationValidate complex form submissions server-side with detailed error reporting.
---
## Format Conversions
**Services:** `html-to-markdown`, `markdown-to-html`
Convert between HTML and Markdown. Essential for content management systems, email builders, and documentation tools.
### Convert Rich Text Editor Content to Markdown
Store user content from a WYSIWYG editor as portable Markdown.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "html-to-markdown",
"operation": "convert",
"parameters": {
"content": "Meeting Notes
Discussed the Q4 roadmap with the team.
- Launch feature A by Nov 15
- Beta test feature B
",
"preserve_tables": true
}
}'
```
### Render Markdown for Email
Convert Markdown content to HTML for sending formatted emails.
```python
# Python - Render markdown for email
import requests
markdown_content = """
# Your Weekly Report
Here's what happened this week:
- **Sales**: Up 15% from last week
- **New signups**: 234 users
- **Support tickets**: 12 resolved
[View full dashboard](https://app.example.com/dashboard)
"""
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'markdown-to-html',
'operation': 'convert',
'parameters': {
'content': markdown_content,
'include_styles': True
}
}
)
html_email = response.json()['result']['data']['html']
# Use html_email as the body of your email
```
---
## Related Services
- [Excel to JSON](/docs/excel-to-json) - Full service documentation
- [JSON to Excel](/docs/json-to-excel) - Full service documentation
- [JSON Schema Validator](/docs/json-schema-validator) - Full service documentation
- [HTML to Markdown](/docs/html-to-markdown) - Full service documentation
- [Markdown to HTML](/docs/markdown-to-html) - Full service documentation
---
# Visual Content Generation
Source: https://www.acrewity.com/docs/examples-visual-content
# Visual Content Generation
Generate QR codes, barcodes, and convert images. Create scannable codes for payments, inventory, and marketing.
**Quick Reference:** All requests go to `POST /api/services/execute` with your API key in the `Authorization: Bearer YOUR_API_KEY` header.
---
## QR Code Generation
**Service:** `qr-code-generator`
Generate QR codes for URLs, contact info, WiFi credentials, or any text. Returns PNG or SVG format.
### Generate Payment QR Code
Create a QR code linking to a payment page for invoices or receipts.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "qr-code-generator",
"operation": "generate_qr",
"parameters": {
"text": "https://pay.example.com/invoice/INV-2024-0892",
"format": "png",
"size": 300
}
}'
```
### Create WiFi Sharing QR Code
Generate a QR code guests can scan to connect to your WiFi.
```javascript
// JavaScript - WiFi QR code
const wifiConfig = 'WIFI:T:WPA;S:GuestNetwork;P:welcome123;;';
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'qr-code-generator',
operation: 'generate_qr',
parameters: {
text: wifiConfig,
format: 'svg',
size: 256
}
})
});
```
**Use Cases:**
Restaurant MenusGenerate QR codes linking to digital menus for contactless ordering.
Event Check-inCreate unique QR codes for event tickets that can be scanned at entry.
Business CardsGenerate vCard QR codes that add your contact info when scanned.
App DownloadsLink to app store pages for easy mobile app installation.
---
## Barcode Generation
**Service:** `barcode-generator`
Generate various barcode formats including Code128, EAN-13, UPC-A, and more. Essential for inventory and retail systems.
### Generate Product Barcode for Inventory
Create Code128 barcodes for warehouse inventory labels.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "barcode-generator",
"operation": "generate_barcode",
"parameters": {
"text": "SKU-2024-78432",
"format": "code128",
"width": 200,
"height": 80
}
}'
```
### Generate Retail Product Barcode
Create an EAN-13 barcode for retail products.
```javascript
// JavaScript - Generate EAN-13 barcode
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'barcode-generator',
operation: 'generate_barcode',
parameters: {
text: '5901234123457',
format: 'ean13',
width: 200,
height: 100,
displayValue: true
}
})
});
const { result } = await response.json();
// result.data.barcode contains base64-encoded PNG
```
**Use Cases:**
Shipping LabelsGenerate tracking barcodes for packages and shipments.
Product LabelsCreate EAN-13 or UPC-A barcodes for retail products.
---
## Image Format Conversion
**Service:** `image-converter`
Convert images between formats (PNG, JPEG, WebP, GIF) with quality control. Optimize images for web or create thumbnails.
### Convert PNG to WebP for Web Optimization
Reduce image file size by converting to WebP format.
```python
# Python - Optimize image for web
import requests
import base64
with open('hero-image.png', 'rb') as f:
image_base64 = base64.b64encode(f.read()).decode()
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'image-converter',
'operation': 'convert_image',
'parameters': {
'file': image_base64,
'format': 'webp',
'quality': 85
}
}
)
# Alternatively, convert from URL:
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'image-converter',
'operation': 'convert_image',
'parameters': {
'imageUrl': 'https://example.com/images/hero.png',
'format': 'webp',
'quality': 85
}
}
)
```
### Create JPEG Thumbnail from PNG
Convert and resize an image for use as a thumbnail.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "image-converter",
"operation": "convert_image",
"parameters": {
"imageUrl": "https://example.com/large-image.png",
"format": "jpeg",
"quality": 80,
"width": 300,
"height": 200
}
}'
```
**Use Cases:**
Upload ProcessingConvert user-uploaded images to a consistent format for storage.
CDN OptimizationConvert images to WebP for faster page loads.
---
## Related Services
- [QR Code Generator](/docs/qr-code-generator) - Full service documentation
- [Barcode Generator](/docs/barcode-generator) - Full service documentation
- [Image Converter](/docs/image-converter) - Full service documentation
---
# Utilities & Helpers
Source: https://www.acrewity.com/docs/examples-utilities
# Utilities & Helpers
Common utility operations: text processing, pattern matching, timezone conversion, and unique ID generation.
**Quick Reference:** All requests go to `POST /api/services/execute` with your API key in the `Authorization: Bearer YOUR_API_KEY` header.
---
## Text Pattern Matching
**Service:** `regex-matcher`
Extract data from text using regular expressions. Find emails, phone numbers, URLs, or any custom pattern.
### Extract All Email Addresses from Text
Parse a document to find all email addresses mentioned.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "regex-matcher",
"operation": "match_regex",
"parameters": {
"text": "Contact sales@example.com for pricing or support@example.com for help.",
"pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
"flags": "g"
}
}'
# Response: ["sales@example.com", "support@example.com"]
```
### Validate and Extract Phone Numbers
Find all US phone numbers in a customer database export.
```javascript
// JavaScript - Extract phone numbers
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'regex-matcher',
operation: 'match_regex',
parameters: {
text: customerNotes,
pattern: '\\(?\\d{3}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}',
flags: 'g'
}
})
});
```
### Extract URLs from Text
Find all URLs mentioned in a document.
```python
# Python - Extract URLs
import requests
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'regex-matcher',
'operation': 'match_regex',
'parameters': {
'text': 'Check out https://example.com and http://test.org for more info.',
'pattern': 'https?://[\\w\\-\\.]+\\.[a-zA-Z]{2,}[/\\w\\-\\.?=&]*',
'flags': 'g'
}
}
)
urls = response.json()['result']['data']['matches']
# urls = ['https://example.com', 'http://test.org']
```
**Use Cases:**
Data ExtractionPull structured data (dates, IDs, codes) from unstructured text.
Log ParsingExtract error codes, timestamps, or IPs from server logs.
---
## Text Comparison
**Service:** `text-diff`
Compare two text strings and get detailed diff output. Shows additions, deletions, and unchanged sections.
### Track Document Changes
Show users what changed between two versions of a document.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "text-diff",
"operation": "compare_text",
"parameters": {
"text1": "The quick brown fox jumps over the lazy dog.",
"text2": "The quick red fox leaps over the sleeping dog.",
"format": "unified"
}
}'
```
### Compare Configuration Files
Detect changes between two versions of a config file.
```javascript
// JavaScript - Compare configs
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'text-diff',
operation: 'compare_text',
parameters: {
text1: oldConfig,
text2: newConfig,
format: 'detailed'
}
})
});
const { result } = await response.json();
// result.data.changes contains array of additions, deletions, unchanged
```
**Use Cases:**
Version HistoryShow changes between document versions in your CMS.
Content ModerationDetect what changed when users edit their posts or profiles.
---
## Timezone Conversion
**Service:** `timezone-converter`
Convert times between timezones. Handle scheduling across regions without timezone library dependencies.
### Convert Meeting Time for Global Team
Show a meeting scheduled in EST to users in different timezones.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "timezone-converter",
"operation": "convert_timezone",
"parameters": {
"datetime": "2025-01-15T14:00:00",
"fromTimezone": "EST",
"toTimezone": "PST"
}
}'
# Response: { "converted": "2025-01-15T11:00:00", "fromTimezone": "EST", "toTimezone": "PST" }
```
### Convert to Multiple Timezones
Display event time in multiple regions for international audiences.
```javascript
// JavaScript - Convert to multiple timezones
const eventTime = '2025-02-20T09:00:00';
const sourceTimezone = 'America/New_York';
const targetTimezones = ['Europe/London', 'Asia/Tokyo', 'Australia/Sydney'];
const conversions = await Promise.all(targetTimezones.map(async (tz) => {
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'timezone-converter',
operation: 'convert_timezone',
parameters: {
datetime: eventTime,
fromTimezone: sourceTimezone,
toTimezone: tz
}
})
});
const data = await response.json();
return { timezone: tz, time: data.result.data.converted };
}));
```
---
## UUID Generation
**Service:** `uuid-generator`
Generate unique identifiers. Supports v1 (timestamp), v4 (random), and v5 (namespace). Bulk generation available.
### Generate Batch of UUIDs for Database Seeding
Create multiple UUIDs at once for inserting test data.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "uuid-generator",
"operation": "generate_uuid",
"parameters": {
"version": 4,
"count": 10
}
}'
# Response includes array of 10 unique UUIDs
```
### Generate Deterministic UUID
Create the same UUID for a given namespace and name (v5).
```javascript
// JavaScript - Deterministic UUID
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'uuid-generator',
operation: 'generate_uuid',
parameters: {
version: 5,
namespace: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
name: 'user@example.com'
}
})
});
// Same input always produces the same UUID
```
**Use Cases:**
Database IDsGenerate unique primary keys before inserting records.
Request TrackingCreate correlation IDs to trace requests across services.
---
## URL Encoding/Decoding
**Service:** `url-encoder-decoder`
Safely encode special characters for URLs or decode URL-encoded strings.
### Encode Search Query for API Call
Safely encode user input for inclusion in a URL.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "url-encoder-decoder",
"operation": "encode",
"parameters": {
"text": "search term with spaces & special=chars"
}
}'
# Response: "search%20term%20with%20spaces%20%26%20special%3Dchars"
```
### Decode URL Parameters
Parse encoded query string values.
```javascript
// JavaScript - Decode URL
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'url-encoder-decoder',
operation: 'decode',
parameters: {
text: 'Hello%20World%21%20%26%20Welcome'
}
})
});
// Result: "Hello World! & Welcome"
```
---
## Markdown Table Generation
**Service:** `markdown-table-generator`
Generate properly formatted Markdown tables from data. Perfect for auto-generating documentation or reports.
### Generate API Status Table
Create a formatted status table for your status page or README.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "markdown-table-generator",
"operation": "generate_table",
"parameters": {
"headers": ["Service", "Status", "Uptime"],
"rows": [
["API Gateway", "Operational", "99.98%"],
["Database", "Operational", "99.95%"],
["CDN", "Degraded", "98.50%"]
],
"alignment": ["left", "center", "right"]
}
}'
```
### Generate Feature Comparison Table
Create a comparison table for product documentation.
```python
# Python - Generate comparison table
import requests
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'markdown-table-generator',
'operation': 'generate_table',
'parameters': {
'headers': ['Feature', 'Free', 'Pro', 'Enterprise'],
'rows': [
['API Calls', '1,000/mo', '50,000/mo', 'Unlimited'],
['Support', 'Community', 'Email', '24/7 Phone'],
['SLA', 'None', '99.9%', '99.99%']
],
'alignment': ['left', 'center', 'center', 'center']
}
}
)
markdown_table = response.json()['result']['data']['table']
```
---
## Related Services
- [Regex Matcher](/docs/regex-matcher) - Full service documentation
- [Text Diff](/docs/text-diff) - Full service documentation
- [Timezone Converter](/docs/timezone-converter) - Full service documentation
- [UUID Generator](/docs/uuid-generator) - Full service documentation
- [URL Encoder/Decoder](/docs/url-encoder-decoder) - Full service documentation
- [Markdown Table Generator](/docs/markdown-table-generator) - Full service documentation
---
# Email Automation
Source: https://www.acrewity.com/docs/examples-email-automation
# Email Automation
Send transactional emails and read mailboxes via SMTP/IMAP/POP3. Build email workflows without managing mail servers.
**Quick Reference:** All requests go to `POST /api/services/execute` with your API key in the `Authorization: Bearer YOUR_API_KEY` header.
---
## Send Emails via SMTP
**Service:** `email-access`
Send emails via SMTP with HTML support and attachments. Works with any SMTP server including SendGrid, Mailgun, Gmail, and more.
### Send Order Confirmation Email
Send a transactional email with HTML formatting when an order is placed.
```javascript
// JavaScript - Send order confirmation
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'email-access',
operation: 'send_email',
parameters: {
smtp_host: 'smtp.sendgrid.net',
smtp_port: 587,
smtp_user: 'apikey',
smtp_pass: 'YOUR_SENDGRID_API_KEY',
from: 'orders@yourstore.com',
to: 'customer@example.com',
subject: 'Order Confirmed - #ORD-2024-5678',
html: `
Thank you for your order!
Your order #ORD-2024-5678 has been confirmed.
Estimated delivery: January 18, 2025
Track your order
`
}
})
});
```
### Send Password Reset Email
Send a password reset link with a secure token.
```python
# Python - Send password reset email
import requests
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'email-access',
'operation': 'send_email',
'parameters': {
'smtp_host': 'smtp.mailgun.org',
'smtp_port': 587,
'smtp_user': 'postmaster@yourdomain.com',
'smtp_pass': 'YOUR_MAILGUN_PASSWORD',
'from': 'noreply@yourapp.com',
'to': user_email,
'subject': 'Reset Your Password',
'html': f'''
Password Reset Request
Click the link below to reset your password:
Reset Password
This link expires in 1 hour.
'''
}
}
)
```
### Send Email with Attachment
Include file attachments with your emails.
```javascript
// JavaScript - Email with attachment
const pdfBase64 = await readFileAsBase64('invoice.pdf');
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'email-access',
operation: 'send_email',
parameters: {
smtp_host: 'smtp.sendgrid.net',
smtp_port: 587,
smtp_user: 'apikey',
smtp_pass: 'YOUR_SENDGRID_API_KEY',
from: 'billing@yourcompany.com',
to: 'client@example.com',
subject: 'Invoice #INV-2024-0892',
text: 'Please find your invoice attached.',
attachments: [
{
filename: 'invoice-2024-0892.pdf',
content: pdfBase64,
encoding: 'base64'
}
]
}
})
});
```
**Use Cases:**
Transactional EmailSend password resets, order confirmations, and account notifications.
Automated ReportsSend scheduled reports to stakeholders on a daily/weekly basis.
Alert NotificationsSend email alerts when monitors detect issues or thresholds are exceeded.
Welcome EmailsAutomatically send welcome emails when new users sign up.
---
## Read Emails via IMAP
**Service:** `email-access`
Read emails from any IMAP server. Monitor inboxes, parse incoming emails, and trigger workflows based on email content.
### Monitor Support Inbox
Check for new support emails to trigger automated responses or alerts.
```python
# Python - Check for new support emails
import requests
response = requests.post(
'https://www.acrewity.com/api/services/execute',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'service': 'email-access',
'operation': 'fetch_emails_imap',
'parameters': {
'imap_host': 'imap.gmail.com',
'imap_port': 993,
'imap_tls': True,
'imap_user': 'support@yourcompany.com',
'imap_pass': 'your-app-password',
'folder': 'INBOX',
'limit': 10
}
}
)
emails = response.json()['result']['data']['emails']
for email in emails:
print(f"From: {email['from']}")
print(f"Subject: {email['subject']}")
print(f"Date: {email['date']}")
print("---")
```
### Parse Order Emails from Supplier
Extract order details from emails sent by a supplier system.
```javascript
// JavaScript - Parse incoming emails
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'email-access',
operation: 'fetch_emails_imap',
parameters: {
imap_host: 'imap.yourcompany.com',
imap_port: 993,
imap_tls: true,
imap_user: 'orders@yourcompany.com',
imap_pass: 'your-password',
folder: 'Orders',
limit: 25
}
})
});
const { result } = await response.json();
const orderEmails = result.data.emails.filter(
email => email.from.includes('supplier.com')
);
// Process each order email
for (const email of orderEmails) {
const orderData = parseOrderFromEmail(email.text);
await processOrder(orderData);
}
```
**Use Cases:**
Email ParsingRead and parse incoming emails to trigger workflows or extract data.
Support TicketingMonitor support inbox and auto-create tickets from incoming emails.
---
## Read Emails via POP3
**Service:** `email-access`
Alternative to IMAP for servers that only support POP3. Downloads messages from the server.
### Fetch Latest Messages
Retrieve recent emails from a POP3 server.
```bash
curl -X POST https://www.acrewity.com/api/services/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": "email-access",
"operation": "fetch_emails_pop3",
"parameters": {
"pop3_host": "pop.yourserver.com",
"pop3_port": 995,
"pop3_tls": true,
"pop3_user": "inbox@yourcompany.com",
"pop3_pass": "your-password",
"limit": 5
}
}'
```
---
## Best Practices
### Use App Passwords
For Gmail and other providers with 2FA, generate an app-specific password:
- Gmail: Security → 2-Step Verification → App passwords
- Outlook: Security → App passwords
### Store Credentials Securely
Never hardcode SMTP credentials. Use environment variables or a secrets manager:
```javascript
// Good - Use environment variables
const smtpConfig = {
smtp_host: process.env.SMTP_HOST,
smtp_port: parseInt(process.env.SMTP_PORT),
smtp_user: process.env.SMTP_USER,
smtp_pass: process.env.SMTP_PASS
};
```
### Handle Errors
Check for delivery failures and log appropriately:
```javascript
const response = await fetch('https://www.acrewity.com/api/services/execute', { ... });
const data = await response.json();
if (!data.success) {
console.error('Email failed:', data.error);
// Queue for retry or alert admin
}
```
---
## Related Services
- [Email Access](/docs/email-access) - Full service documentation
---
# Acrewity API Reference
Source: https://www.acrewity.com/docs/api-reference
# Acrewity API Reference
Complete API documentation for integrating with Acrewity's API platform.
> **n8n Users:** Install our community node `@acrewity/n8n-nodes-acrewity` from the n8n nodes panel. Then log in to Acrewity, go to **Menu → API Keys**, create a key, and paste it into your n8n Acrewity credentials.
>
> npmjs.com/package/@acrewity/n8n-nodes-acrewity
## Base URL
```
https://www.acrewity.com
```
## Authentication
All API requests require authentication using API keys with Bearer token authentication.
### API Key Format
API keys follow this format:
```
ak_<64_hexadecimal_characters>
```
Example:
```
YOUR_API_KEY
```
### Authentication Header
```http
Authorization: Bearer YOUR_API_KEY
```
### Getting API Keys
1. Sign up at [www.acrewity.com](https://www.acrewity.com)
2. Navigate to **API Keys** in your dashboard
3. Click **Create New API Key**
4. Provide a descriptive name for your key
5. Click **Create**
6. **Copy your API key immediately** - you won't be able to see it again!
## API Endpoints
### Execute Service
All services use a unified execution endpoint:
```http
POST /api/services/execute
```
**Headers:**
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
**Request Body:**
```json
{
"service": "service_name",
"operation": "operation_name",
"parameters": {
...service-specific parameters
}
}
```
**Response:**
```json
{
"success": true,
"data": {
...operation results
},
"creditsUsed": 1,
"creditsRemaining": 9999
}
```
## Available Services
All services cost **1 credit** per operation.
### Service List
**Document & Content Conversion**
- [URL to Markdown](/docs/url-to-markdown) - Convert web pages to Markdown
- [HTML to PDF](/docs/html-to-pdf) - Convert HTML to PDF documents
- [PDF to HTML](/docs/pdf-to-html) - Convert PDF documents to HTML
- [PDF to Markdown](/docs/pdf-to-markdown) - Convert PDF documents to Markdown
- [HTML to Markdown](/docs/html-to-markdown) - Convert HTML to Markdown
- [Markdown to HTML](/docs/markdown-to-html) - Convert Markdown to HTML
- [PDF Merge](/docs/pdf-merge) - Combine multiple PDFs
- [PDF Extract Page](/docs/pdf-extract-page) - Extract pages from PDFs
- [Image Converter](/docs/image-converter) - Convert image formats
**Data & File Processing**
- [Excel to JSON](/docs/excel-to-json) - Convert Excel files to JSON with intelligent table detection
- [Excel Editor](/docs/excel-editor) - Create and modify Excel files
- [XML Parser/Generator](/docs/xml-parser-generator) - Parse and generate XML
- [YAML/JSON Converter](/docs/yaml-json-converter) - Convert between YAML and JSON
- [JSON Schema Validator](/docs/json-schema-validator) - Validate JSON data against schemas
- [Data Transformer](/docs/data-transformer) - Transform and reshape data
**Communication & Web**
- [Email Access](/docs/email-access) - Send and receive emails with SMTP/IMAP/POP3
- [Internet Access](/docs/internet-access) - Fetch URLs, search the web, save content
- [GitHub Access](/docs/github-access) - Interact with GitHub repositories and issues
- [Webhook Forwarder](/docs/webhook-forwarder) - Forward webhooks to destinations
**Text & String Processing**
- [Regex Matcher](/docs/regex-matcher) - Pattern matching and text extraction
- [Text Diff](/docs/text-diff) - Compare text and highlight differences
- [URL Encoder/Decoder](/docs/url-encoder-decoder) - Encode and decode URLs
- [Encoding Converter](/docs/encoding-converter) - Convert text between character encodings
**Generators**
- [UUID Generator](/docs/uuid-generator) - Generate unique identifiers
- [QR Code Generator](/docs/qr-code-generator) - Generate QR codes
- [Barcode Generator](/docs/barcode-generator) - Generate 1D barcodes (Code128, EAN, UPC, etc.)
- [Sitemap Generator](/docs/sitemap-generator) - Generate XML sitemaps
- [Markdown Table Generator](/docs/markdown-table-generator) - Generate formatted Markdown tables
- [Hash Calculator](/docs/hash-calculator) - Calculate MD5, SHA-1, SHA-256, and other hashes
**Utilities**
- [Timezone Converter](/docs/timezone-converter) - Convert times between timezones
## Error Responses
All services return consistent error responses:
```json
{
"success": false,
"error": "Error type",
"message": "Detailed error message",
"code": "ERROR_CODE"
}
```
### Common Error Codes
| Code | Description |
|------|-------------|
| 400 | Bad Request - Invalid input |
| 401 | Unauthorized - Missing or invalid API key |
| 402 | Payment Required - Insufficient credits |
| 403 | Forbidden - Access denied |
| 404 | Not Found - Service or resource not found |
| 500 | Internal Error - Server error |
## Credit System
Request processing is governed by the credit system:
- Each user has a credit balance
- **All operations cost 1 credit**
- When credits are exhausted, requests return 402 Payment Required
- Credits can be purchased or renewed through subscription
- Each API response includes `creditsRemaining` field
## Rate Limits
API keys are subject to rate limits:
- **Default**: 1000 requests per minute per account
- If you exceed rate limits, you'll receive a `429 Too Many Requests` error
For higher rate limits, [contact us](https://www.acrewity.com/contact) about enterprise plans.
## Next Steps
- [Integration Guide](/docs/integrations-overview) - Step-by-step integration guides
- [Email Access Service](/docs/email-access) - Send and receive emails
- [URL to Markdown Service](/docs/url-to-markdown) - Convert web pages to Markdown
---
**API Version:** v1
**Last Updated:** 2025-12-22
**Support:** our support team via the dashboard
---
# Email Access Service
Source: https://www.acrewity.com/docs/email-access
# Email Access
Send and receive emails via SMTP, IMAP, and POP3 protocols.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Send Email
Send emails via SMTP
**Operation ID:** `send_email`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `smtp_host` | string | Yes | - | SMTP server hostname |
| `smtp_user` | string | Yes | - | SMTP username/email |
| `smtp_pass` | string | Yes | - | SMTP password/app password |
| `to` | string | Yes | - | Recipient email address |
| `subject` | string | Yes | - | Email subject |
| `smtp_port` | number | No | `587` | SMTP port |
| `smtp_secure` | boolean | No | `false` | Use SSL/TLS |
| `from` | string | No | - | From address (defaults to smtp_user) |
| `cc` | string or array | No | - | CC recipient(s). Comma-separated string or array of addresses |
| `bcc` | string or array | No | - | BCC recipient(s). Comma-separated string or array of addresses |
| `text` | string | No | - | Plain text content |
| `html` | string | No | - | HTML content |
#### Example Request
**Send Order Confirmation:**
```json
{
"service": "email-access",
"operation": "send_email",
"parameters": {
"smtp_host": "smtp.sendgrid.net",
"smtp_port": 587,
"smtp_user": "apikey",
"smtp_pass": "YOUR_SENDGRID_API_KEY",
"from": "orders@yourstore.com",
"to": "customer@example.com",
"subject": "Order Confirmed - #ORD-2024-5678",
"html": "Thank you for your order!
Your order #ORD-2024-5678 has been confirmed.
Estimated delivery: January 18, 2025
"
}
}
```
**Send with Gmail:**
```json
{
"service": "email-access",
"operation": "send_email",
"parameters": {
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"smtp_user": "your-email@gmail.com",
"smtp_pass": "your-app-password",
"to": "recipient@example.com",
"subject": "Weekly Report - Sales Dashboard",
"text": "Here is your weekly sales report...",
"html": "Weekly Sales Report
Revenue: $12,500
Orders: 145
"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"messageId": "",
"to": "customer@example.com",
"subject": "Order Confirmed - #ORD-2024-5678",
"sent": true,
"response": "250 OK id=1tXYZ-00ABC-12"
}
},
"credits_used": 1
}
```
### Fetch Emails (POP3)
Retrieve emails via POP3
**Operation ID:** `fetch_emails_pop3`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `pop3_host` | string | Yes | - | POP3 server hostname |
| `pop3_user` | string | Yes | - | POP3 username/email |
| `pop3_pass` | string | Yes | - | POP3 password/app password |
| `pop3_port` | number | No | `110` | POP3 port |
| `pop3_secure` | boolean | No | `false` | Use TLS/SSL |
| `limit` | number | No | `10` | Maximum emails to fetch (max: 100) |
#### Example Request
```json
{
"service": "email-access",
"operation": "fetch_emails_pop3",
"parameters": {
"pop3_host": "pop.gmail.com",
"pop3_port": 995,
"pop3_secure": true,
"pop3_user": "your-email@gmail.com",
"pop3_pass": "your-app-password",
"limit": 10
}
}
```
### Fetch Single Email (POP3)
Retrieve a specific email by ID from POP3 account
**Operation ID:** `fetch_email_pop3`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `pop3_host` | string | Yes | - | POP3 server hostname |
| `pop3_user` | string | Yes | - | POP3 username/email |
| `pop3_pass` | string | Yes | - | POP3 password/app password |
| `email_id` | number | Yes | - | Email message number |
| `pop3_port` | number | No | `110` | POP3 port |
| `pop3_secure` | boolean | No | `false` | Use TLS/SSL |
#### Example Request
```json
{
"service": "email-access",
"operation": "fetch_email_pop3",
"parameters": {
"pop3_host": "pop.gmail.com",
"pop3_port": 995,
"pop3_secure": true,
"pop3_user": "your-email@gmail.com",
"pop3_pass": "your-app-password",
"email_id": 5
}
}
```
### Fetch Emails (IMAP)
Retrieve multiple emails from IMAP account
**Operation ID:** `fetch_emails`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `imap_host` | string | Yes | - | IMAP server hostname |
| `imap_user` | string | Yes | - | IMAP username/email |
| `imap_pass` | string | Yes | - | IMAP password/app password |
| `imap_port` | number | No | `993` | IMAP port |
| `imap_secure` | boolean | No | `true` | Use TLS/SSL |
| `folder` | string | No | `INBOX` | Mailbox folder |
| `limit` | number | No | `10` | Maximum emails to fetch (max: 100) |
#### Example Request
```json
{
"service": "email-access",
"operation": "fetch_emails",
"parameters": {
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_secure": true,
"imap_user": "support@yourcompany.com",
"imap_pass": "your-app-password",
"folder": "INBOX",
"limit": 25
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"emails": [
{
"id": 1,
"from": "customer@example.com",
"subject": "Question about my order",
"date": "2025-01-15T10:30:00Z",
"text": "Hi, I wanted to ask about..."
}
],
"totalCount": 25
}
},
"credits_used": 1
}
```
### Fetch Single Email (IMAP)
Retrieve a specific email by ID from IMAP account
**Operation ID:** `fetch_email`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `imap_host` | string | Yes | - | IMAP server hostname |
| `imap_user` | string | Yes | - | IMAP username/email |
| `imap_pass` | string | Yes | - | IMAP password/app password |
| `email_id` | number | Yes | - | Email ID/sequence number |
| `imap_port` | number | No | `993` | IMAP port |
| `imap_secure` | boolean | No | `true` | Use TLS/SSL |
| `folder` | string | No | `INBOX` | Mailbox folder |
#### Example Request
```json
{
"service": "email-access",
"operation": "fetch_email",
"parameters": {
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_secure": true,
"imap_user": "support@yourcompany.com",
"imap_pass": "your-app-password",
"email_id": 42,
"folder": "INBOX"
}
}
```
### Mark Email as Read (IMAP)
Mark a specific email as read in IMAP account
**Operation ID:** `mark_as_read`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `imap_host` | string | Yes | - | IMAP server hostname |
| `imap_user` | string | Yes | - | IMAP username/email |
| `imap_pass` | string | Yes | - | IMAP password/app password |
| `email_id` | number | Yes | - | Email ID/sequence number |
| `imap_port` | number | No | `993` | IMAP port |
| `imap_secure` | boolean | No | `true` | Use TLS/SSL |
| `folder` | string | No | `INBOX` | Mailbox folder |
#### Example Request
```json
{
"service": "email-access",
"operation": "mark_as_read",
"parameters": {
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_secure": true,
"imap_user": "support@yourcompany.com",
"imap_pass": "your-app-password",
"email_id": 42,
"folder": "INBOX"
}
}
```
---
## More Examples
See [Email Automation Examples](/docs/examples-email-automation) for complete workflow examples including order confirmations, password resets, inbox monitoring, and automated reports.
---
# Acrewity Integration Guide
Source: https://www.acrewity.com/docs/integrations-overview
# Acrewity Integration Guide
Step-by-step integration guides for popular automation platforms and development tools.
## Quick Start
All Acrewity services use:
- **Base URL**: `https://www.acrewity.com`
- **Endpoint**: `POST /api/services/execute`
- **Authentication**: Bearer token with API key (format: `ak_...`)
## Integration Platforms
### n8n Integration
**Recommended: Use the Acrewity Community Node**
The easiest way to integrate with n8n is using our official community node:
1. In n8n, go to **Settings → Community Nodes**
2. Search for `n8n-nodes-acrewity` and install
3. Add your API key in the credentials
4. Drag the Acrewity node into your workflow
The community node provides:
- Pre-built actions for all services
- Auto-complete for operations and parameters
- Built-in error handling
- No manual JSON configuration needed
**Alternative: HTTP Request Node**
You can also use n8n's HTTP Request node:
- **Method**: POST
- **URL**: `https://www.acrewity.com/api/services/execute`
- **Authentication**: Add Header `Authorization: Bearer YOUR_API_KEY`
- **Body**: JSON with `service`, `operation`, and `parameters`
### Zapier Integration
Connect Acrewity with 5,000+ apps using Zapier's Webhooks by Zapier action:
- **Action**: POST
- **URL**: `https://www.acrewity.com/api/services/execute`
- **Headers**: Add `Authorization: Bearer YOUR_API_KEY`
- **Data**: Set up your service parameters
### Make.com Integration
Use Make.com's HTTP module to integrate:
- **Module**: HTTP > Make a request
- **Method**: POST
- **URL**: `https://www.acrewity.com/api/services/execute`
- **Headers**: `Authorization: Bearer YOUR_API_KEY`
- **Body**: Configure service parameters
### Custom Applications
Build custom integrations using standard HTTP requests:
**cURL Example:**
```bash
curl -X POST https://www.acrewity.com/api/services/execute
-H "Authorization: Bearer YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"service": "email-access", "operation": "send_email", "parameters": {"to": "user@example.com", "subject": "Test", "text": "Hello"}}'
```
**JavaScript Example:**
```javascript
const response = await fetch('https://www.acrewity.com/api/services/execute', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
serviceId: 'email-access',
operation: 'send_email',
parameters: {
to: 'user@example.com',
subject: 'Test',
text: 'Hello'
}
})
});
const data = await response.json();
```
## Security Best Practices
- **Never** commit API keys to version control
- Use environment variables for API keys
- Create separate keys for development and production
- Rotate keys regularly
- Monitor key usage in the dashboard
## Support
- **Documentation**: [www.acrewity.com/docs](https://www.acrewity.com/docs)
- **Support Email**: our support team via the dashboard
- **Dashboard**: [acrewity.com/dashboard](https://acrewity.com/dashboard)
## Next Steps
- [API Reference](/docs/api-reference) - Complete API details
- [Email Access](/docs/email-access) - Send and receive emails
- [URL to Markdown](/docs/url-to-markdown) - Convert web pages to Markdown
---
# URL to Markdown Service
Source: https://www.acrewity.com/docs/url-to-markdown
# URL to Markdown
Convert web pages to clean, readable Markdown format.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert URL to Markdown
Convert a webpage to markdown format
**Operation ID:** `url_to_markdown`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | string | Yes | - | URL to convert to markdown |
**Note:** The service automatically detects single-page applications (SPAs) and JavaScript-heavy sites. If the initial static fetch returns minimal content, it automatically retries using Puppeteer for full JavaScript rendering.
#### Example Request
**Convert Web Page:**
```json
{
"service": "url-to-markdown",
"operation": "url_to_markdown",
"parameters": {
"url": "https://blog.example.com/scaling-nodejs-applications"
}
}
```
**Convert Documentation Site:**
```json
{
"service": "url-to-markdown",
"operation": "url_to_markdown",
"parameters": {
"url": "https://docs.example.com/api-reference"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"url": "https://blog.example.com/scaling-nodejs-applications",
"title": "Scaling Node.js Applications",
"markdown": "# Scaling Node.js Applications\n\nLearn how to scale your Node.js apps to handle millions of requests...\n\n## Key Strategies\n\n- **Clustering**: Use all CPU cores\n- **Load Balancing**: Distribute traffic\n- **Caching**: Redis for session storage\n\n...",
"html_length": 15420,
"markdown_length": 4823,
"word_count": 892,
"filename": "scaling-nodejs-applications.md"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Content Automation Examples](/docs/examples-content-automation) for complete workflow examples including knowledge base building, competitor analysis, and content aggregation.
---
# UUID Generator Service
Source: https://www.acrewity.com/docs/uuid-generator
# UUID Generator
Generate unique identifiers (UUID v1, v4, or v5).
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Generate UUID
Generate unique identifiers (UUID v1, v4, or v5)
**Operation ID:** `generate_uuid`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `version` | string | No | `v4` | UUID version (v1, v4, v5) Options: `v1`, `v4`, `v5` |
| `namespace` | string | No | - | Namespace for v5 UUIDs (required for v5) |
| `name` | string | No | - | Name for v5 UUIDs (required for v5) |
| `count` | number | No | `1` | Number of UUIDs to generate (min: 1, max: 100) |
#### Example Request
**Generate Single Random UUID (v4):**
```json
{
"service": "uuid-generator",
"operation": "generate_uuid",
"parameters": {
"version": "v4"
}
}
```
**Generate Batch of UUIDs:**
```json
{
"service": "uuid-generator",
"operation": "generate_uuid",
"parameters": {
"version": "v4",
"count": 10
}
}
```
**Generate Deterministic UUID (v5):**
```json
{
"service": "uuid-generator",
"operation": "generate_uuid",
"parameters": {
"version": "v5",
"namespace": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "user@example.com"
}
}
```
**Generate Timestamp-based UUID (v1):**
```json
{
"service": "uuid-generator",
"operation": "generate_uuid",
"parameters": {
"version": "v1"
}
}
```
#### Example Response (Single UUID)
```json
{
"success": true,
"result": {
"data": {
"uuids": ["f47ac10b-58cc-4372-a567-0e02b2c3d479"],
"count": 1,
"version": "v4",
"timestamp": "2024-12-30T10:15:30.000Z"
}
},
"credits_used": 1
}
```
#### Example Response (Batch UUIDs)
```json
{
"success": true,
"result": {
"data": {
"uuids": [
"f47ac10b-58cc-4372-a567-0e02b2c3d479",
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
],
"count": 3,
"version": "v4",
"timestamp": "2024-12-30T10:15:30.000Z"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Utilities & Helpers Examples](/docs/examples-utilities) for complete workflow examples including database seeding, request tracking, and correlation IDs.
---
# Regex Matcher Service
Source: https://www.acrewity.com/docs/regex-matcher
# Regex Matcher
Test and match regular expressions against text.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Match Pattern
Find all matches for a regular expression pattern in text.
**Operation ID:** `match_pattern`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `pattern` | string | Yes | - | Regular expression pattern |
| `text` | string | Yes | - | Text to search in |
| `flags` | string | No | `g` | Regex flags (g, i, m, etc.) |
#### Example Request
**Extract Email Addresses:**
```json
{
"service": "regex-matcher",
"operation": "match_pattern",
"parameters": {
"text": "Contact sales@example.com for pricing or support@example.com for help. Our CEO is john.doe@company.org",
"pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
"flags": "g"
}
}
```
**Extract Phone Numbers:**
```json
{
"service": "regex-matcher",
"operation": "match_pattern",
"parameters": {
"text": "Call us at (555) 123-4567 or 555.987.6543. International: +1-800-555-0199",
"pattern": "\\+?\\d?[-.\\s]?\\(?\\d{3}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}",
"flags": "g"
}
}
```
**Case-Insensitive Search:**
```json
{
"service": "regex-matcher",
"operation": "match_pattern",
"parameters": {
"text": "The quick Brown FOX jumps over the lazy dog",
"pattern": "fox",
"flags": "gi"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
"flags": "g",
"text_length": 101,
"matches": [
{ "match": "sales@example.com", "index": 8, "groups": null },
{ "match": "support@example.com", "index": 41, "groups": null },
{ "match": "john.doe@company.org", "index": 81, "groups": null }
],
"match_count": 3
}
},
"credits_used": 1
}
```
---
## More Examples
See [Utilities & Helpers Examples](/docs/examples-utilities) for complete workflow examples including data extraction, log parsing, and text validation.
---
# Text Diff Service
Source: https://www.acrewity.com/docs/text-diff
# Text Diff
Compare two text strings and highlight the differences.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Compare Text
Compare two text strings line by line and identify differences.
**Operation ID:** `compare_text`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `text1` | string | Yes | - | First text to compare (original) |
| `text2` | string | Yes | - | Second text to compare (modified) |
#### Example Request
**Compare Configuration Files:**
```json
{
"service": "text-diff",
"operation": "compare_text",
"parameters": {
"text1": "server:\n port: 3000\n host: localhost\n debug: true",
"text2": "server:\n port: 8080\n host: 0.0.0.0\n debug: false\n ssl: true"
}
}
```
**Compare Document Versions:**
```json
{
"service": "text-diff",
"operation": "compare_text",
"parameters": {
"text1": "The quick brown fox jumps over the lazy dog.",
"text2": "The quick red fox leaps over the sleepy dog."
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"diff": [
{ "type": "unchanged", "line": "server:", "line_number": 1 },
{ "type": "removed", "line": " port: 3000", "line_number": 2 },
{ "type": "added", "line": " port: 8080", "line_number": 2 },
{ "type": "removed", "line": " host: localhost", "line_number": 3 },
{ "type": "added", "line": " host: 0.0.0.0", "line_number": 3 },
{ "type": "removed", "line": " debug: true", "line_number": 4 },
{ "type": "added", "line": " debug: false", "line_number": 4 },
{ "type": "added", "line": " ssl: true", "line_number": 5 }
],
"stats": {
"lines_added": 4,
"lines_removed": 3,
"lines_unchanged": 1
},
"total_changes": 7
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including version comparison, code review automation, and document change tracking.
---
# Timezone Converter Service
Source: https://www.acrewity.com/docs/timezone-converter
# Timezone Converter
Convert dates and times between different timezones.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert Timezone
Convert time between different timezones
**Operation ID:** `convert_timezone`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `datetime` | string | Yes | - | Date and time to convert (ISO 8601 or common formats) |
| `fromTimezone` | string | Yes | - | Source timezone (e.g., America/New_York, UTC, Europe/London) |
| `toTimezone` | string | Yes | - | Target timezone (e.g., Asia/Tokyo, Pacific/Auckland) |
#### Example Request
**Convert Business Hours (New York to Tokyo):**
```json
{
"service": "timezone-converter",
"operation": "convert_timezone",
"parameters": {
"datetime": "2024-12-30 09:00:00",
"fromTimezone": "America/New_York",
"toTimezone": "Asia/Tokyo"
}
}
```
**Convert UTC to Multiple Timezones:**
```json
{
"service": "timezone-converter",
"operation": "convert_timezone",
"parameters": {
"datetime": "2024-12-30T14:30:00Z",
"fromTimezone": "UTC",
"toTimezone": "Europe/London"
}
}
```
**Schedule Global Meeting:**
```json
{
"service": "timezone-converter",
"operation": "convert_timezone",
"parameters": {
"datetime": "2024-12-31 10:00:00",
"fromTimezone": "Europe/Berlin",
"toTimezone": "America/Los_Angeles"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"originalTime": "2024-12-30, 09:00:00 Eastern Standard Time",
"convertedTime": "2024-12-30, 23:00:00 Japan Standard Time",
"timezoneOffset": "+14 hours",
"fromTimezone": "America/New_York",
"toTimezone": "Asia/Tokyo",
"originalDateTime": "2024-12-30 09:00:00"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Utilities & Helpers Examples](/docs/examples-utilities) for complete workflow examples including global meeting scheduling, deadline coordination, and multi-region event planning.
---
# Markdown Table Generator Service
Source: https://www.acrewity.com/docs/markdown-table-generator
# Markdown Table Generator
Generate Markdown tables from structured data.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Generate Markdown Table
Generate a markdown table from JSON, CSV, or HTML data
**Operation ID:** `generate_table`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `data` | string/array | Yes | - | Table data (JSON array, CSV string, or HTML table) |
| `inputType` | string | No | `json` | Input data format: `json`, `csv`, `html` |
| `alignment` | object/array | No | - | Column alignment. Object format: `{"Price": "right"}` or array format: `["left", "right", "center"]` |
| `headers` | array | No | - | Custom header names to override detected headers |
#### Example Request
**Generate Table from JSON Array:**
```json
{
"service": "markdown-table-generator",
"operation": "generate_table",
"parameters": {
"data": [
{ "Product": "Laptop", "Price": 999.99, "Stock": 50 },
{ "Product": "Mouse", "Price": 29.99, "Stock": 200 },
{ "Product": "Keyboard", "Price": 79.99, "Stock": 150 }
],
"inputType": "json",
"alignment": { "Price": "right", "Stock": "center" }
}
}
```
**Generate Table from CSV:**
```json
{
"service": "markdown-table-generator",
"operation": "generate_table",
"parameters": {
"data": "Name,Email,Role\nJohn Doe,john@example.com,Admin\nJane Smith,jane@example.com,Editor\nBob Wilson,bob@example.com,Viewer",
"inputType": "csv"
}
}
```
**Generate Table from HTML:**
```json
{
"service": "markdown-table-generator",
"operation": "generate_table",
"parameters": {
"data": "| City | Population |
|---|
| New York | 8.3M |
| Los Angeles | 4M |
",
"inputType": "html"
}
}
```
**Generate Table with Custom Headers:**
```json
{
"service": "markdown-table-generator",
"operation": "generate_table",
"parameters": {
"data": [
{ "n": "Widget A", "p": 19.99, "q": 100 },
{ "n": "Widget B", "p": 24.99, "q": 75 }
],
"inputType": "json",
"headers": ["Item Name", "Unit Price", "Quantity"]
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"markdown_table": "| Product | Price | Stock |\n|---|---:|:---:|\n| Laptop | 999.99 | 50 |\n| Mouse | 29.99 | 200 |\n| Keyboard | 79.99 | 150 |",
"markdown": "| Product | Price | Stock |\n|---|---:|:---:|\n| Laptop | 999.99 | 50 |\n| Mouse | 29.99 | 200 |\n| Keyboard | 79.99 | 150 |",
"row_count": 3,
"column_count": 3,
"headers": ["Product", "Price", "Stock"],
"input_type": "json"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including report generation, documentation automation, and data presentation.
---
# QR Code Generator Service
Source: https://www.acrewity.com/docs/qr-code-generator
# QR Code Generator
Generate QR codes from text or URLs.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Generate QR Code
Generate a QR code from text or URL
**Operation ID:** `generate_qr`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `text` | string | Yes | - | Text or URL to encode in QR code |
| `size` | number | No | `300` | QR code size in pixels (min: 100, max: 1000) |
| `format` | string | No | `png` | Output format (png or svg only) Options: `png`, `svg` |
| `errorCorrectionLevel` | string | No | `M` | Error correction level Options: `L`, `M`, `Q`, `H` |
#### Example Request
**URL QR Code:**
```json
{
"service": "qr-code-generator",
"operation": "generate_qr",
"parameters": {
"text": "https://example.com/menu",
"size": 400,
"format": "png",
"errorCorrectionLevel": "H"
}
}
```
**WiFi QR Code:**
```json
{
"service": "qr-code-generator",
"operation": "generate_qr",
"parameters": {
"text": "WIFI:T:WPA;S:GuestNetwork;P:welcome2024;;",
"size": 300,
"format": "svg"
}
}
```
**vCard QR Code:**
```json
{
"service": "qr-code-generator",
"operation": "generate_qr",
"parameters": {
"text": "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+1-555-123-4567\nEMAIL:john@example.com\nEND:VCARD",
"size": 350,
"format": "png"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"filename": "qrcode-1735567890123.png",
"contentType": "image/png",
"size": 2847,
"content": "iVBORw0KGgoAAAANSUhEUgAA...",
"downloadUrl": "/api/downloads/qrcode-1735567890123.png",
"downloadable": true,
"metadata": {
"text": "https://example.com/menu",
"format": "png",
"size": 400,
"errorCorrectionLevel": "H",
"actualSize": 400
}
}
},
"credits_used": 1
}
```
---
## More Examples
See [Visual Content Generation Examples](/docs/examples-visual-content) for complete workflow examples including restaurant menus, event tickets, and payment QR codes.
---
# JSON Schema Validator Service
Source: https://www.acrewity.com/docs/json-schema-validator
# JSON Schema Validator
Validate JSON data against JSON Schema specifications.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Validate JSON
Validate JSON data against a JSON schema
**Operation ID:** `validate_json`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `data` | object | Yes | - | JSON data to validate (can also be a JSON string) |
| `schema` | object | Yes | - | JSON schema for validation |
#### Example Request
**Validate User Registration Data:**
```json
{
"service": "json-schema-validator",
"operation": "validate_json",
"parameters": {
"data": {
"name": "John Doe",
"email": "john@example.com",
"age": 28
},
"schema": {
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string" },
"email": { "type": "string" },
"age": { "type": "number" }
}
}
}
}
```
**Validate API Payload:**
```json
{
"service": "json-schema-validator",
"operation": "validate_json",
"parameters": {
"data": {
"orderId": "ORD-12345",
"items": [
{ "sku": "PROD-001", "quantity": 2 },
{ "sku": "PROD-002", "quantity": 1 }
],
"total": 149.99
},
"schema": {
"type": "object",
"required": ["orderId", "items", "total"],
"properties": {
"orderId": { "type": "string" },
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"quantity": { "type": "number" }
}
}
},
"total": { "type": "number" }
}
}
}
}
```
**Validate Config with Missing Required Fields:**
```json
{
"service": "json-schema-validator",
"operation": "validate_json",
"parameters": {
"data": {
"host": "localhost"
},
"schema": {
"type": "object",
"required": ["host", "port", "database"],
"properties": {
"host": { "type": "string" },
"port": { "type": "number" },
"database": { "type": "string" }
}
}
}
}
```
#### Example Response (Valid Data)
```json
{
"success": true,
"result": {
"data": {
"valid": true,
"errors": [],
"data_type": "object",
"schema_type": "object"
}
},
"credits_used": 1
}
```
#### Example Response (Invalid Data)
```json
{
"success": true,
"result": {
"data": {
"valid": false,
"errors": [
"missing required field 'port'",
"missing required field 'database'"
],
"data_type": "object",
"schema_type": "object"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including API payload validation, configuration verification, and data quality checks.
---
# HTML to PDF Service
Source: https://www.acrewity.com/docs/html-to-pdf
# HTML to PDF
Convert HTML content to PDF documents.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert to PDF
Convert HTML content or URL to PDF
**Operation ID:** `convert_pdf`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `html` | string | No | - | HTML content to convert |
| `url` | string | No | - | URL of web page to convert (alternative to HTML) |
| `format` | string | No | `A4` | Paper format Options: `A4`, `Letter`, `Legal`, `A3`, `A5` |
| `landscape` | boolean | No | `false` | Use landscape orientation |
| `margin` | object | No | `{ top: 20, bottom: 20, left: 20, right: 20 }` | Page margins (top, bottom, left, right) |
**Note:** Either `html` or `url` must be provided.
#### Example Request
**HTML Content to PDF:**
```json
{
"service": "html-to-pdf",
"operation": "convert_pdf",
"parameters": {
"html": "Invoice #2024-0892
| Item | Amount |
|---|
| Web Design | $500.00 |
| Logo Design | $150.00 |
Total: $650.00
",
"format": "A4",
"margin": { "top": "20mm", "bottom": "20mm", "left": "15mm", "right": "15mm" }
}
}
```
**URL to PDF:**
```json
{
"service": "html-to-pdf",
"operation": "convert_pdf",
"parameters": {
"url": "https://example.com/report",
"format": "Letter",
"landscape": true
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"filename": "document-1735567890123.pdf",
"contentType": "application/pdf",
"size": 45238,
"content": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PA...",
"downloadUrl": "/api/downloads/document-1735567890123.pdf",
"downloadable": true,
"metadata": {
"format": "A4",
"landscape": false,
"pageCount": "N/A",
"fileSize": 45238
}
}
},
"credits_used": 1
}
```
---
## More Examples
See [Document Processing Examples](/docs/examples-document-processing) for complete workflow examples including invoices, reports, certificates, and contracts.
---
# Image Converter Service
Source: https://www.acrewity.com/docs/image-converter
# Image Converter
Convert images between formats and resize them.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert Image
Convert images between formats with optional resizing. Provide ONE of: imageUrl (or image_url/url), imageFile (or image_file/file), or imageData (or image_data/data/image).
**Operation ID:** `convert_image`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `format` | string | Yes | - | Target image format Options: `jpg`, `jpeg`, `png`, `webp`, `gif`, `bmp`, `tiff`, `ico` |
| `imageUrl` | string | No | - | URL of image to convert. Aliases: image_url, url |
| `imageFile` | file | No | - | Base64 encoded image file. Aliases: image_file, file |
| `imageData` | string | No | - | Base64 image data (with or without data URI prefix). Aliases: image_data, data, image |
| `quality` | number | No | `85` | Image quality (1-100) (min: 1, max: 100) |
| `width` | number | No | - | Resize width in pixels (maintains aspect ratio) (min: 1, max: 10000) |
| `height` | number | No | - | Resize height in pixels (maintains aspect ratio) (min: 1, max: 10000) |
#### Example Request
**Convert PNG to WebP (from URL):**
```json
{
"service": "image-converter",
"operation": "convert_image",
"parameters": {
"imageUrl": "https://example.com/images/hero-image.png",
"format": "webp",
"quality": 85
}
}
```
**Convert and Resize for Thumbnail:**
```json
{
"service": "image-converter",
"operation": "convert_image",
"parameters": {
"imageUrl": "https://example.com/images/product-photo.jpg",
"format": "jpeg",
"quality": 80,
"width": 300,
"height": 200
}
}
```
**Convert Base64 Image:**
```json
{
"service": "image-converter",
"operation": "convert_image",
"parameters": {
"imageData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB...",
"format": "webp",
"quality": 90
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"filename": "image-1735567890123.webp",
"contentType": "image/webp",
"size": 45320,
"content": "UklGRhYAAABXRUJQVlA4TAoAAAAvAQA...",
"downloadUrl": "/api/downloads/image-1735567890123.webp",
"downloadable": true,
"metadata": {
"originalSize": 125000,
"convertedSize": 45320,
"format": "webp",
"quality": 85,
"dimensions": { "width": 1920, "height": 1080 },
"compressionRatio": 64
}
}
},
"credits_used": 1
}
```
---
## More Examples
See [Visual Content Generation Examples](/docs/examples-visual-content) for complete workflow examples including image optimization, thumbnail generation, and CDN preparation.
---
# Excel to JSON Service
Source: https://www.acrewity.com/docs/excel-to-json
# Excel to JSON
Extract data from Excel files and convert to JSON format with multiple read modes.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### List Sheets
Get all sheet names and metadata from an Excel file
**Operation ID:** `list_sheets`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | Excel file (.xlsx, .xls) |
#### Example Request
```json
{
"service": "excel-to-json",
"operation": "list_sheets",
"parameters": {
"file": "BASE64_ENCODED_EXCEL_FILE"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"sheets": [
{ "name": "Contacts", "rowCount": 150 },
{ "name": "Orders", "rowCount": 500 },
{ "name": "Products", "rowCount": 75 }
]
}
},
"credits_used": 1
}
```
### Read Entire File
Read all sheets with full cell data, types, and formulas
**Operation ID:** `read_excel`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | Excel file (.xlsx, .xls) |
| `sheets` | array | No | - | Array of sheet names to read (empty for all) |
| `includeDetectedTables` | boolean | No | `true` | Include auto-detected table data |
#### Example Request
```json
{
"service": "excel-to-json",
"operation": "read_excel",
"parameters": {
"file": "BASE64_ENCODED_EXCEL_FILE",
"sheets": ["Contacts", "Orders"],
"includeDetectedTables": true
}
}
```
### Read Specific Sheet
Read a single sheet with full cell data
**Operation ID:** `read_sheet`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | Excel file (.xlsx, .xls) |
| `sheetName` | string | Yes | - | Name of the sheet to read |
| `includeDetectedTables` | boolean | No | `true` | Include auto-detected table data |
#### Example Request
```json
{
"service": "excel-to-json",
"operation": "read_sheet",
"parameters": {
"file": "BASE64_ENCODED_EXCEL_FILE",
"sheetName": "Contacts",
"includeDetectedTables": true
}
}
```
### Get Cell Range
Extract values from a specific cell range (e.g., A1:D10)
**Operation ID:** `get_range`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | Excel file (.xlsx, .xls) |
| `range` | string | Yes | - | Cell range in A1 notation (e.g., A1:D10, B2, A:A) |
| `sheetName` | string | No | - | Sheet name (uses first sheet if not specified) |
#### Example Request
```json
{
"service": "excel-to-json",
"operation": "get_range",
"parameters": {
"file": "BASE64_ENCODED_EXCEL_FILE",
"range": "A1:D50",
"sheetName": "Sales Data"
}
}
```
### Smart Table Extract
Intelligently detect and extract tables from Excel
**Operation ID:** `convert`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | Excel file (.xlsx, .xls) |
| `sheetName` | string | No | - | Specific sheet name (empty for all sheets) |
| `format` | string | No | `array_of_objects` | Output format Options: `array_of_objects`, `raw_arrays` |
#### Example Request
```json
{
"service": "excel-to-json",
"operation": "convert",
"parameters": {
"file": "BASE64_ENCODED_EXCEL_FILE",
"sheetName": "Contacts",
"format": "array_of_objects"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"rows": [
{ "Name": "John Smith", "Email": "john@example.com", "Phone": "555-1234" },
{ "Name": "Jane Doe", "Email": "jane@example.com", "Phone": "555-5678" }
],
"headers": ["Name", "Email", "Phone"],
"rowCount": 2
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including bulk data imports and spreadsheet processing.
---
# HTML to Markdown Service
Source: https://www.acrewity.com/docs/html-to-markdown
# HTML to Markdown
Convert HTML content to Markdown format.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert HTML to Markdown
Convert HTML content to Markdown with table, image, and code block preservation
**Operation ID:** `convert`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `content` | string | Yes | - | HTML content to convert |
| `heading_style` | string | No | `atx` | Heading style Options: `atx`, `setext` |
| `code_block_style` | string | No | `fenced` | Code block style Options: `fenced`, `indented` |
| `bullet_list_marker` | string | No | `-` | Bullet list marker character Options: `-`, `+`, `*` |
| `link_style` | string | No | `inlined` | Link formatting style Options: `inlined`, `referenced` |
| `extract_images` | boolean | No | `false` | Extract image information from the HTML |
#### Example Request
```json
{
"service": "html-to-markdown",
"operation": "convert",
"parameters": {
"content": "Product Update
We're excited to announce version 2.0 with:
- Improved performance
- New dashboard
- API v2 support
| Feature | Status |
|---|
| Dark Mode | Available |
| Mobile App | Coming Soon |
",
"heading_style": "atx",
"link_style": "inlined"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"markdown": "# Product Update\n\nWe're excited to announce **version 2.0** with:\n\n- Improved performance\n- New dashboard\n- API v2 support\n\n| Feature | Status |\n|---------|--------|\n| Dark Mode | Available |\n| Mobile App | Coming Soon |"
}
},
"credits_used": 1
}
```
### Convert HTML Fragment
Convert an HTML fragment to Markdown without full document processing
**Operation ID:** `fragment`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `content` | string | Yes | - | HTML fragment to convert |
#### Example Request
```json
{
"service": "html-to-markdown",
"operation": "fragment",
"parameters": {
"content": "Contact us at support@example.com or visit our documentation.
"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"markdown": "Contact us at [support@example.com](mailto:support@example.com) or visit our [documentation](https://docs.example.com)."
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including WYSIWYG editor integration and content migration.
---
# JSON to Excel Service
Source: https://www.acrewity.com/docs/json-to-excel
# JSON to Excel
Convert JSON data to Excel spreadsheets with single or multiple sheets.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Create Excel (Single Sheet)
Create an Excel file from an array of objects.
**Operation ID:** `create_excel`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `data` | array | Yes | - | Array of objects to convert to Excel rows |
| `sheetName` | string | No | `Sheet1` | Name of the worksheet |
| `headers` | boolean | No | `true` | Include headers row from object keys |
| `headerStyle` | object | No | - | Style for header row (see [Cell Styling](#cell-styling)) |
| `columnStyles` | object | No | - | Styles by column header name (see [Cell Styling](#cell-styling)) |
| `rowStyles` | object | No | - | Styles by row number (see [Cell Styling](#cell-styling)) |
#### Example Request
**Team Members Export:**
```json
{
"service": "json-to-excel",
"operation": "create_excel",
"parameters": {
"data": [
{ "name": "John Smith", "email": "john@example.com", "role": "Developer", "joined": "2024-01-15" },
{ "name": "Jane Doe", "email": "jane@example.com", "role": "Designer", "joined": "2024-02-20" },
{ "name": "Bob Wilson", "email": "bob@example.com", "role": "Manager", "joined": "2023-11-01" }
],
"sheetName": "Team Members",
"headers": true
}
}
```
**With Styling:**
```json
{
"service": "json-to-excel",
"operation": "create_excel",
"parameters": {
"data": [
{ "name": "John Smith", "email": "john@example.com", "role": "Developer" },
{ "name": "Jane Doe", "email": "jane@example.com", "role": "Designer" }
],
"sheetName": "Team",
"headerStyle": {
"bold": true,
"fill": "#4472C4",
"fontColor": "#FFFFFF",
"freeze": true
},
"columnStyles": {
"name": { "width": 25 },
"email": { "width": 30 }
}
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"filename": "excel-1735567890123.xlsx",
"contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"size": 4521,
"content": "UEsDBBQAAAAIAHxLd1kAAAAA...",
"downloadUrl": "/api/downloads/excel-1735567890123.xlsx",
"downloadable": true,
"metadata": {
"rows": 4,
"columns": 4,
"sheetName": "Team Members",
"format": "xlsx",
"sourceFormat": "array_of_objects",
"actualSize": 4521
}
}
},
"credits_used": 1
}
```
---
### Create Multi-Sheet Excel
Create an Excel file with multiple worksheets. Supports multiple input formats.
**Operation ID:** `create_multi_sheet`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `sheets` | object | Yes | - | Object with sheet names as keys (see formats below) |
| `headers` | boolean | No | `true` | Include headers row |
| `useCells` | boolean | No | `false` | Use raw cell data for exact positioning |
| `preserveFormulas` | boolean | No | `false` | Preserve Excel formulas when using `useCells: true` |
| `fileName` | string | No | `export.xlsx` | Name of the output file |
---
## Sheet Data Formats
The `create_multi_sheet` operation accepts several input formats for sheet data. Choose the format that best fits your use case.
### Format 1: Simple Array of Objects (Recommended for new data)
The simplest format - just provide arrays of objects. Headers are automatically extracted from object keys.
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Sales": [
{ "product": "Widget Pro", "quantity": 150, "revenue": 4500 },
{ "product": "Widget Basic", "quantity": 320, "revenue": 3200 }
],
"Inventory": [
{ "item": "Widget Pro", "stock": 500, "warehouse": "A1" },
{ "item": "Widget Basic", "stock": 1200, "warehouse": "B2" }
]
}
}
}
```
### Format 2: Direct `rows` and `headers` (Recommended for programmatic data)
Explicitly specify headers and row data. This is common when building sheets programmatically or from n8n workflows.
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Products": {
"headers": ["SKU", "Name", "Price", "Stock"],
"rows": [
{ "SKU": "WP-001", "Name": "Widget Pro", "Price": 29.99, "Stock": 100 },
{ "SKU": "WB-001", "Name": "Widget Basic", "Price": 19.99, "Stock": 250 }
]
},
"Categories": {
"headers": ["ID", "Category", "Description"],
"rows": [
{ "ID": 1, "Category": "Electronics", "Description": "Electronic devices" },
{ "ID": 2, "Category": "Office", "Description": "Office supplies" }
]
}
}
}
}
```
### Format 3: `detectedTable` with `range` (Round-trip from excel-to-json)
Use this format when working with data from the `excel-to-json` service. The `range` parameter controls where the table is positioned in the sheet.
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Sheet1": {
"detectedTable": {
"headers": ["Name", "Age", "City"],
"rows": [
{ "Name": "John", "Age": 30, "City": "NYC" },
{ "Name": "Jane", "Age": 25, "City": "LA" }
],
"range": "A1"
}
}
}
}
}
```
#### The `range` Parameter
The `range` parameter in `detectedTable` specifies the starting cell for the table:
| Range Value | Result |
|-------------|--------|
| `"A1"` | Table starts at cell A1 (row 1, column A) |
| `"B5"` | Table starts at cell B5 (row 5, column B) |
| `"C10"` | Table starts at cell C10 (row 10, column C) |
| Not specified | Defaults to A1 |
**Example: Positioning table below metadata**
If your original Excel had metadata in rows 1-4 and the data table starting at row 6:
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Report": {
"cells": {
"A1": { "value": "Monthly Report" },
"A2": { "value": "Generated: 2024-01-15" },
"A3": { "value": "" }
},
"detectedTable": {
"headers": ["Product", "Sales", "Revenue"],
"rows": [
{ "Product": "Widget", "Sales": 100, "Revenue": 5000 }
],
"range": "A5"
}
}
}
}
}
```
### Format 4: `cells` for Exact Positioning (Preserves layout and formulas)
Use `useCells: true` for exact cell-by-cell control. Perfect for spreadsheets with complex layouts, merged cells, or formulas.
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"useCells": true,
"preserveFormulas": true,
"sheets": {
"Budget": {
"cells": {
"A1": { "value": "Item" },
"B1": { "value": "Amount" },
"A2": { "value": "Rent" },
"B2": { "value": 1500 },
"A3": { "value": "Utilities" },
"B3": { "value": 200 },
"A4": { "value": "Total" },
"B4": { "value": 1700, "formula": "SUM(B2:B3)" }
}
}
}
}
}
```
### Format 5: Combined `cells` + `detectedTable`
You can combine metadata cells with a data table. The table will be positioned after the cells.
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Invoice": {
"cells": {
"A1": { "value": "INVOICE #12345" },
"A2": { "value": "Date: 2024-01-15" },
"A3": { "value": "Customer: Acme Corp" }
},
"detectedTable": {
"headers": ["Item", "Qty", "Price", "Total"],
"rows": [
{ "Item": "Widget", "Qty": 10, "Price": 25.00, "Total": 250.00 },
{ "Item": "Gadget", "Qty": 5, "Price": 50.00, "Total": 250.00 }
],
"range": "A5"
}
}
}
}
}
```
---
## Example Response
```json
{
"success": true,
"result": {
"data": {
"filename": "export.xlsx",
"contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"size": 8932,
"content": "UEsDBBQAAAAIAHxLd1kAAAAA...",
"downloadUrl": "/api/downloads/excel-abc123-def456.xlsx",
"downloadable": true,
"sheetCount": 3,
"sheetNames": ["Sales", "Inventory", "Employees"],
"sourceFormat": "excel-to-json"
}
},
"credits_used": 1
}
```
---
## Round-Trip Workflow: Excel -> JSON -> Excel
You can read an Excel file with multiple sheets using `excel-to-json`, modify the data, and write it back:
**Step 1: Read Excel with excel-to-json**
```json
{
"service": "excel-to-json",
"operation": "read_excel",
"parameters": {
"file": "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,UEsDBBQ..."
}
}
```
**Step 2: The response includes `detectedTable` with `headers`, `rows`, and `range`**
```json
{
"success": true,
"data": {
"sheets": {
"Sheet1": {
"cells": { ... },
"detectedTable": {
"headers": ["Name", "Age"],
"rows": [{ "Name": "John", "Age": 30 }],
"range": "A1"
}
}
}
}
}
```
**Step 3: Modify the data and write back**
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Sheet1": {
"detectedTable": {
"headers": ["Name", "Age"],
"rows": [
{ "Name": "John", "Age": 30 },
{ "Name": "Jane", "Age": 25 }
],
"range": "A1"
}
}
}
}
}
```
---
## Quick Reference: Which Format to Use?
| Use Case | Recommended Format |
|----------|-------------------|
| Creating new data from scratch | Format 1 (Simple arrays) |
| Building sheets programmatically | Format 2 (`rows` + `headers`) |
| Round-trip from excel-to-json | Format 3 (`detectedTable` with `range`) |
| Preserving exact cell layout | Format 4 (`cells`) |
| Metadata header + data table | Format 5 (Combined `cells` + `detectedTable`) |
---
## Cell Styling
Add professional formatting to your Excel exports with cell-level styles, column/row defaults, and table-level styling.
### Style Properties Reference
| Property | Type | Values | Description |
|----------|------|--------|-------------|
| `bold` | boolean | true/false | Bold font |
| `italic` | boolean | true/false | Italic font |
| `fontSize` | number | 8-72 | Font size in points |
| `fontColor` | string | hex (#RRGGBB) | Font color |
| `fill` | string | hex (#RRGGBB) | Background fill color |
| `align` | string | left, center, right | Horizontal alignment |
| `valign` | string | top, middle, bottom | Vertical alignment |
| `wrap` | boolean | true/false | Wrap text in cell |
| `width` | number | 1-255 | Column width (for columnStyles) |
| `height` | number | 1-409 | Row height (for rowStyles) |
| `border` | string | none, thin, medium, thick | Cell border style |
| `numberFormat` | string | @, 0.00, #,##0, yyyy-mm-dd | Excel number format |
| `freeze` | boolean | true/false | Freeze panes at header row (headerStyle only) |
### Cell-Level Styles
Apply styles to individual cells using the `style` property:
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"useCells": true,
"sheets": {
"Report": {
"cells": {
"A1": {
"value": "Sales Report",
"style": {
"bold": true,
"fontSize": 16,
"fill": "#4472C4",
"fontColor": "#FFFFFF",
"align": "center"
}
},
"A2": {
"value": "Q4 2024",
"style": { "italic": true, "fontSize": 12 }
},
"B5": {
"value": 15000,
"style": { "numberFormat": "#,##0.00", "bold": true }
}
}
}
}
}
}
```
### Column and Row Styles
Apply bulk formatting with `columnStyles` and `rowStyles` at the sheet level:
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Data": {
"columnStyles": {
"A": { "width": 20 },
"B": { "width": 40, "wrap": true },
"C:E": { "width": 15, "align": "center" },
"F:H": { "wrap": true, "width": 30 }
},
"rowStyles": {
"1": { "height": 25, "bold": true, "fill": "#D9E2F3" }
},
"headers": ["ID", "Description", "Price", "Qty", "Total", "Notes", "Category", "Status"],
"rows": [
{ "ID": 1, "Description": "Widget Pro", "Price": 29.99, "Qty": 100, "Total": 2999, "Notes": "Best seller", "Category": "Electronics", "Status": "Active" }
]
}
}
}
}
```
**Column Range Notation:** Use `"G:I"` to apply the same style to columns G, H, and I.
### Table-Level Styles (headerStyle & columnStyles)
Apply styles to the header row and specific columns by header name using `detectedTable`:
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"BOM": {
"cells": {
"A1": { "value": "Bill of Materials", "style": { "bold": true, "fontSize": 16 } }
},
"detectedTable": {
"headers": ["Part Number", "Description", "Manufacturer", "MPN", "Qty"],
"rows": [
{ "Part Number": "R001", "Description": "10k Resistor", "Manufacturer": "Yageo Corporation International", "MPN": "RC0805FR-0710KL", "Qty": 100 },
{ "Part Number": "C001", "Description": "100nF Capacitor", "Manufacturer": "Samsung Electro-Mechanics", "MPN": "CL21B104KBCNNNC", "Qty": 50 }
],
"range": "A4",
"headerStyle": {
"bold": true,
"fill": "#4472C4",
"fontColor": "#FFFFFF",
"freeze": true
},
"columnStyles": {
"Description": { "wrap": true, "width": 40 },
"Manufacturer": { "wrap": true, "width": 35 },
"MPN": { "wrap": true, "width": 25 }
}
}
}
}
}
}
```
**Key Features:**
- `headerStyle.freeze: true` freezes the header row so it stays visible when scrolling
- `columnStyles` uses header names (not column letters) for easy mapping
- Styles are applied to all data cells in those columns
### Complete Styled Example
```json
{
"service": "json-to-excel",
"operation": "create_multi_sheet",
"parameters": {
"sheets": {
"Invoice": {
"cells": {
"A1": { "value": "INVOICE", "style": { "bold": true, "fontSize": 24, "fill": "#1F4E79", "fontColor": "#FFFFFF" } },
"A2": { "value": "Invoice #: INV-2024-001", "style": { "fontSize": 11 } },
"A3": { "value": "Date: January 15, 2024", "style": { "fontSize": 11 } },
"D1": { "value": "Acme Corp", "style": { "bold": true, "fontSize": 14, "align": "right" } },
"D2": { "value": "123 Business St", "style": { "align": "right" } }
},
"detectedTable": {
"headers": ["Item", "Description", "Qty", "Unit Price", "Total"],
"rows": [
{ "Item": "WP-001", "Description": "Widget Pro", "Qty": 10, "Unit Price": 29.99, "Total": 299.90 },
{ "Item": "GB-001", "Description": "Gadget Basic with extended warranty and support package", "Qty": 5, "Unit Price": 49.99, "Total": 249.95 }
],
"range": "A6",
"headerStyle": {
"bold": true,
"fill": "#4472C4",
"fontColor": "#FFFFFF",
"align": "center"
},
"columnStyles": {
"Description": { "wrap": true, "width": 45 },
"Unit Price": { "numberFormat": "$#,##0.00", "align": "right" },
"Total": { "numberFormat": "$#,##0.00", "bold": true, "align": "right" }
}
},
"rowStyles": {
"1": { "height": 30 }
}
}
}
}
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including report downloads, bulk imports, and multi-sheet workbooks.
---
# URL Encoder/Decoder Service
Source: https://www.acrewity.com/docs/url-encoder-decoder
# URL Encoder/Decoder
Encode and decode URL components for safe transmission and web integration.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Encode URL
Encode text for safe use in URLs using `encodeURIComponent`.
**Operation ID:** `encode`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `text` | string | Yes | - | Text to URL-encode |
**Note:** You can also use `url` as an alias for the `text` parameter.
#### Example Request
**Encode Query Parameter:**
```json
{
"service": "url-encoder-decoder",
"operation": "encode",
"parameters": {
"text": "Hello World! Special chars: é, ñ, 中文"
}
}
```
**Encode URL Path:**
```json
{
"service": "url-encoder-decoder",
"operation": "encode",
"parameters": {
"text": "user@example.com?redirect=/dashboard"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"original": "Hello World! Special chars: é, ñ, 中文",
"encoded": "Hello%20World!%20Special%20chars%3A%20%C3%A9%2C%20%C3%B1%2C%20%E4%B8%AD%E6%96%87"
}
},
"credits_used": 1
}
```
---
### Decode URL
Decode URL-encoded text back to its original form using `decodeURIComponent`.
**Operation ID:** `decode`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `text` | string | Yes | - | URL-encoded text to decode |
**Note:** You can also use `url` as an alias for the `text` parameter.
#### Example Request
**Decode Query Parameter:**
```json
{
"service": "url-encoder-decoder",
"operation": "decode",
"parameters": {
"text": "Hello%20World!%20Special%20chars%3A%20%C3%A9%2C%20%C3%B1%2C%20%E4%B8%AD%E6%96%87"
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"original": "Hello%20World!%20Special%20chars%3A%20%C3%A9%2C%20%C3%B1%2C%20%E4%B8%AD%E6%96%87",
"decoded": "Hello World! Special chars: é, ñ, 中文"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including API payload encoding and URL parameter handling.
---
# Markdown to HTML Service
Source: https://www.acrewity.com/docs/markdown-to-html
# Markdown to HTML
Convert Markdown content to HTML format.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert Markdown to HTML
Convert Markdown to HTML with GitHub Flavored Markdown support and syntax highlighting
**Operation ID:** `convert`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `content` | string | Yes | - | Markdown content to convert |
| `include_styles` | boolean | No | `true` | Include CSS styles in the HTML output |
| `highlight_code` | boolean | No | `true` | Apply syntax highlighting to code blocks |
| `gfm` | boolean | No | `true` | Enable GitHub Flavored Markdown |
| `breaks` | boolean | No | `false` | Convert line breaks to
tags |
#### Example Request
```json
{
"service": "markdown-to-html",
"operation": "convert",
"parameters": {
"content": "# Welcome to Our Platform\n\nHere's what you can do:\n\n- **Create** new projects\n- **Collaborate** with your team\n- **Deploy** with one click\n\n```javascript\nconst greeting = 'Hello, World!';\nconsole.log(greeting);\n```\n\n> Pro tip: Use keyboard shortcuts for faster navigation.",
"include_styles": true,
"highlight_code": true
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"html": "Welcome to Our Platform
..."
}
},
"credits_used": 1
}
```
### Convert Markdown Fragment
Convert Markdown fragment to HTML without wrapping in full HTML document
**Operation ID:** `fragment`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `content` | string | Yes | - | Markdown fragment to convert |
| `gfm` | boolean | No | `true` | Enable GitHub Flavored Markdown |
| `breaks` | boolean | No | `false` | Convert line breaks to
tags |
#### Example Request
```json
{
"service": "markdown-to-html",
"operation": "fragment",
"parameters": {
"content": "Check out our **new features**:\n\n1. Real-time sync\n2. Dark mode\n3. Export to PDF",
"gfm": true
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"html": "Check out our new features:
- Real-time sync
- Dark mode
- Export to PDF
"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Data Transformation Examples](/docs/examples-data-transformation) for complete workflow examples including email rendering and CMS integration.
---
# PDF Merge Service
Source: https://www.acrewity.com/docs/pdf-merge
# PDF Merge
Merge multiple PDF files into one document.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Merge PDFs
Combine source PDF pages into target PDF
**Operation ID:** `merge`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `source_pdf` | file | Yes | - | PDF file to merge from (Base64 encoded, with or without data URI prefix) |
| `target_pdf` | file | Yes | - | PDF file to merge into (Base64 encoded, with or without data URI prefix) |
#### Example Request
**Merge Two PDF Documents:**
```json
{
"service": "pdf-merge",
"operation": "merge",
"parameters": {
"source_pdf": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"target_pdf": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv..."
}
}
```
**Merge Using Raw Base64 (without data URI prefix):**
```json
{
"service": "pdf-merge",
"operation": "merge",
"parameters": {
"source_pdf": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"target_pdf": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv..."
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"file": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAov...",
"pageCount": 8,
"message": "Successfully merged 3 pages into target PDF. Total pages: 8"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Document Processing Examples](/docs/examples-document-processing) for complete workflow examples including report consolidation, invoice bundling, and document archiving.
---
# PDF to HTML Service
Source: https://www.acrewity.com/docs/pdf-to-html
# PDF to HTML
Convert PDF documents to HTML format.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert PDF to HTML
Convert PDF file to HTML with table detection and structure preservation
**Operation ID:** `convert`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | PDF file to convert (Base64 encoded, with or without data URI prefix) |
| `include_styles` | boolean | No | `true` | Include CSS styles in the HTML output |
#### Example Request
**Convert PDF with Styles:**
```json
{
"service": "pdf-to-html",
"operation": "convert",
"parameters": {
"file": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"include_styles": true
}
}
```
**Convert PDF without Styles:**
```json
{
"service": "pdf-to-html",
"operation": "convert",
"parameters": {
"file": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"include_styles": false
}
}
```
#### Example Response (convert)
```json
{
"success": true,
"result": {
"data": {
"html": "\n\n\n\n\n\nDocument Title
\nContent from the PDF...
\n\n",
"pageCount": 5,
"metadata": {
"title": "Annual Report 2024",
"author": "Company Inc.",
"creationDate": "2024-12-15T10:30:00.000Z"
}
}
},
"credits_used": 1
}
```
---
### Get PDF Metadata
Extract metadata from a PDF without full conversion
**Operation ID:** `metadata`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | PDF file to read metadata from (Base64 encoded) |
#### Example Request
**Extract Metadata:**
```json
{
"service": "pdf-to-html",
"operation": "metadata",
"parameters": {
"file": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv..."
}
}
```
#### Example Response (metadata)
```json
{
"success": true,
"result": {
"data": {
"title": "Annual Report 2024",
"author": "Company Inc.",
"subject": "Financial Summary",
"keywords": "finance, annual, report",
"creator": "Microsoft Word",
"producer": "PDF Library",
"creationDate": "2024-12-15T10:30:00.000Z",
"modificationDate": "2024-12-20T14:45:00.000Z",
"pageCount": 24
}
},
"credits_used": 1
}
```
---
## More Examples
See [Document Processing Examples](/docs/examples-document-processing) for complete workflow examples including content extraction, web publishing, and document indexing.
---
# PDF Extract Page Service
Source: https://www.acrewity.com/docs/pdf-extract-page
# PDF Extract Page
Extract specific pages from PDF files.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Extract Pages
Extract specific pages from a PDF
**Operation ID:** `extract`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `pdf` | file | Yes | - | PDF file to extract pages from (Base64 encoded, with or without data URI prefix) |
| `page_numbers` | array | Yes | - | Array of page numbers to extract (1-based indexing) |
#### Example Request
**Extract Single Page:**
```json
{
"service": "pdf-extract-page",
"operation": "extract",
"parameters": {
"pdf": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"page_numbers": [1]
}
}
```
**Extract Multiple Specific Pages:**
```json
{
"service": "pdf-extract-page",
"operation": "extract",
"parameters": {
"pdf": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"page_numbers": [1, 3, 5, 7]
}
}
```
**Extract Cover and Back Pages:**
```json
{
"service": "pdf-extract-page",
"operation": "extract",
"parameters": {
"pdf": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv...",
"page_numbers": [1, 10]
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"downloadable": true,
"filename": "extracted-pages-1735567890123.pdf",
"contentType": "application/pdf",
"size": 45238,
"content": "JVBERi0xLjQKMSAwIG9iago8PAov...",
"downloadUrl": "/api/downloads/extracted-pages-1735567890123.pdf",
"extractedPages": [1, 3, 5, 7],
"pageCount": 4,
"originalPageCount": 20,
"extractedAt": "2024-12-30T10:15:30.000Z"
}
},
"credits_used": 1
}
```
---
## More Examples
See [Document Processing Examples](/docs/examples-document-processing) for complete workflow examples including chapter extraction, form isolation, and selective document sharing.
---
# PDF to Markdown Service
Source: https://www.acrewity.com/docs/pdf-to-markdown
# PDF to Markdown
Convert PDF documents to Markdown format.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Convert PDF to Markdown
Convert PDF file to Markdown with table detection
**Operation ID:** `convert`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | PDF file to convert (Base64 encoded, with or without data URI prefix) |
#### Example Request
**Convert PDF to Markdown:**
```json
{
"service": "pdf-to-markdown",
"operation": "convert",
"parameters": {
"file": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv..."
}
}
```
**Convert Using Raw Base64:**
```json
{
"service": "pdf-to-markdown",
"operation": "convert",
"parameters": {
"file": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv..."
}
}
```
#### Example Response (convert)
```json
{
"success": true,
"result": {
"data": {
"markdown": "# Annual Report 2024\n\n## Executive Summary\n\nThis report covers the fiscal year ending December 2024...\n\n## Financial Highlights\n\n| Quarter | Revenue | Growth |\n|---------|---------|--------|\n| Q1 | $2.5M | +15% |\n| Q2 | $2.8M | +12% |",
"pageCount": 24,
"metadata": {
"title": "Annual Report 2024",
"author": "Company Inc.",
"creationDate": "2024-12-15T10:30:00.000Z"
}
}
},
"credits_used": 1
}
```
---
### Get PDF Metadata
Extract metadata from a PDF without full conversion
**Operation ID:** `metadata`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Yes | - | PDF file to read metadata from (Base64 encoded) |
#### Example Request
**Extract Metadata:**
```json
{
"service": "pdf-to-markdown",
"operation": "metadata",
"parameters": {
"file": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAv..."
}
}
```
#### Example Response (metadata)
```json
{
"success": true,
"result": {
"data": {
"title": "Annual Report 2024",
"author": "Company Inc.",
"subject": "Financial Summary",
"keywords": "finance, annual, report",
"creator": "Microsoft Word",
"producer": "PDF Library",
"creationDate": "2024-12-15T10:30:00.000Z",
"modificationDate": "2024-12-20T14:45:00.000Z",
"pageCount": 24
}
},
"credits_used": 1
}
```
---
## More Examples
See [Document Processing Examples](/docs/examples-document-processing) for complete workflow examples including content extraction, documentation conversion, and knowledge base building.
---
# Barcode Generator
Source: https://www.acrewity.com/docs/barcode-generator
# Barcode Generator
Generate 1D barcodes (Code128, EAN-13, EAN-8, UPC-A, Code39, ITF-14, Codabar) via API.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Generate Barcode
Generate 1D barcodes (Code128, EAN-13, EAN-8, UPC-A, Code39, ITF-14, Codabar)
**Operation ID:** `generate_barcode`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `text` | string | Yes | - | Text or numbers to encode in barcode |
| `format` | string | No | `code128` | Barcode format type Options: `CODE128`, `EAN13`, `EAN8`, `UPC`, `CODE39`, `ITF14`, `codabar` |
| `width` | number | No | `2` | Bar width multiplier |
| `height` | number | No | `100` | Barcode height in pixels |
| `displayValue` | boolean | No | `true` | Show text below barcode |
#### Example Request
**Product SKU Barcode (Code128):**
```json
{
"service": "barcode-generator",
"operation": "generate_barcode",
"parameters": {
"text": "SKU-2024-78432",
"format": "CODE128",
"width": 2,
"height": 100,
"displayValue": true
}
}
```
**Retail Product Barcode (EAN-13):**
```json
{
"service": "barcode-generator",
"operation": "generate_barcode",
"parameters": {
"text": "5901234123457",
"format": "EAN13",
"width": 2,
"height": 80,
"displayValue": true
}
}
```
**Shipping Barcode (Code39):**
```json
{
"service": "barcode-generator",
"operation": "generate_barcode",
"parameters": {
"text": "SHIP-2024-A1B2C3",
"format": "CODE39",
"width": 2,
"height": 60
}
}
```
#### Example Response
```json
{
"success": true,
"result": {
"data": {
"filename": "barcode-1735567890123.png",
"contentType": "image/png",
"size": 4523,
"content": "iVBORw0KGgoAAAANSUhEUgAA...",
"downloadUrl": "/api/downloads/barcode-1735567890123.png",
"downloadable": true,
"metadata": {
"text": "SKU-2024-78432",
"format": "CODE128",
"outputFormat": "png",
"width": 2,
"height": 100,
"displayValue": true
}
}
},
"credits_used": 1
}
```
---
## More Examples
See [Visual Content Generation Examples](/docs/examples-visual-content) for complete workflow examples including inventory labels, shipping labels, and retail products.
---
# Sitemap Generator
Source: https://www.acrewity.com/docs/sitemap-generator
# Sitemap Generator
Extract links from web pages and generate XML sitemaps from URL lists.
## Endpoint
```
POST https://www.acrewity.com/api/services/execute
```
## Authentication
Include your API key in the Authorization header:
```
Authorization: Bearer YOUR_API_KEY
```
## n8n Integration
This service is also available via our n8n community node: [`@acrewity/n8n-nodes-acrewity`](https://www.npmjs.com/package/@acrewity/n8n-nodes-acrewity)
## Operations
### Extract Links
Extract all hyperlinks from a web page
**Operation ID:** `extract_links`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | string | Yes | - | URL of the page to extract links from |
| `same_domain_only` | boolean | No | `true` | Only return links from the same domain |
| `limit` | number | No | `100` | Maximum number of links to return (max: 100) |
#### Example Request
**Extract Links from Homepage:**
```json
{
"service": "sitemap-generator",
"operation": "extract_links",
"parameters": {
"url": "https://example.com",
"same_domain_only": true,
"limit": 50
}
}
```
**Extract All Links (Including External):**
```json
{
"service": "sitemap-generator",
"operation": "extract_links",
"parameters": {
"url": "https://blog.example.com/articles",
"same_domain_only": false,
"limit": 100
}
}
```
#### Example Response (extract_links)
```json
{
"success": true,
"result": {
"data": {
"url": "https://example.com",
"domain": "example.com",
"links": [
"https://example.com/about",
"https://example.com/products",
"https://example.com/contact",
"https://example.com/blog",
"https://example.com/pricing"
],
"count": 5,
"same_domain_only": true,
"limit": 50
}
},
"credits_used": 1
}
```
---
### Generate Sitemap
Generate an XML sitemap from a list of URLs
**Operation ID:** `generate_sitemap`
#### Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `urls` | array | Yes | - | Array of URLs to include in the sitemap (max: 50,000) |
| `changefreq` | string | No | `weekly` | Change frequency: `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, `never` |
| `priority` | number | No | `0.5` | Default priority for all URLs (0.0-1.0) |
| `include_lastmod` | boolean | No | `true` | Include last modification date |
#### Example Request
**Generate Basic Sitemap:**
```json
{
"service": "sitemap-generator",
"operation": "generate_sitemap",
"parameters": {
"urls": [
"https://example.com/",
"https://example.com/about",
"https://example.com/products",
"https://example.com/contact"
],
"changefreq": "weekly",
"priority": 0.8
}
}
```
**Generate Sitemap for Blog:**
```json
{
"service": "sitemap-generator",
"operation": "generate_sitemap",
"parameters": {
"urls": [
"https://blog.example.com/",
"https://blog.example.com/post-1",
"https://blog.example.com/post-2",
"https://blog.example.com/post-3"
],
"changefreq": "daily",
"priority": 0.7,
"include_lastmod": true
}
}
```
#### Example Response (generate_sitemap)
```json
{
"success": true,
"result": {
"data": {
"sitemapXml": "\n\n \n https://example.com/\n 2024-12-30\n weekly\n 0.8\n \n ...\n",
"content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4...",
"filename": "sitemap-1735567890123.xml",
"contentType": "application/xml",
"size": 892,
"downloadUrl": "/api/downloads/sitemap-1735567890123.xml",
"downloadable": true,
"urlCount": 4,
"changefreq": "weekly",
"priority": 0.8
}
},
"credits_used": 1
}
```
---
## More Examples
See [Utilities & Helpers Examples](/docs/examples-utilities) for complete workflow examples including SEO automation, site auditing, and search engine submission.