Frequently Asked Questions
Everything you need to know about ExportKit.
General
What is ExportKit?
ExportKit is a SaaS API that provides drop-in data export infrastructure. We handle streaming CSV, JSON, and Excel exports with progress tracking, webhooks, and secure download links — so you don't have to build it yourself.
Who is ExportKit for?
SaaS companies that need to give their users data export functionality. Instead of spending days building export infrastructure, integrate ExportKit in 10 minutes via our REST API or React SDK.
How is this different from building exports myself?
Building production-ready exports requires handling streaming (to avoid memory limits), progress tracking, webhook delivery, file storage, security, and error handling. ExportKit handles all of this out-of-the-box, letting you focus on your core product.
Data & Formats
What export formats do you support?
We support CSV, JSON, and Excel (.xlsx). All formats use streaming to handle datasets of any size without memory limits or timeouts.
Can you handle nested or complex JSON data?
Yes. JSON exports preserve the full structure of nested data. For CSV and Excel exports, nested objects and arrays are JSON-serialized into cells, so no data is lost. We've tested with deeply nested e-commerce orders, SaaS analytics events, and complex configuration data.
What's the maximum dataset size?
There's no hard limit. We use cursor-based streaming, so exports are memory-safe regardless of dataset size. Excel has a 1,048,576 row limit per sheet (Excel's limitation, not ours), but we handle this gracefully with multi-sheet exports and truncation warnings.
Do you support custom column mapping or data transformation?
Currently, we export data as-is. If you need custom transformations, preprocess your data before sending it to ExportKit. We're considering adding transformation options in the future — let us know if this is important to you.
Integration
How do I integrate ExportKit?
Three ways: (1) REST API — POST to /api/jobs with your data or a dataUrl. (2) MCP Server — AI agents discover and use exports via Model Context Protocol tools. (3) React SDK — drop in our <ExportButton> component for user-facing UIs. All methods take about 10 minutes to integrate.
Can I use ExportKit with AI agents?
Yes — this is what we're built for. We provide a native MCP server and /llms.txt endpoint so AI agents can discover, trigger, and download exports autonomously. No human in the loop required.
Do you have SDKs for other languages?
Our REST API works with any language — it's a simple HTTP POST. We also have a React SDK for user-facing export UIs. Python and Go SDKs are on the roadmap based on demand.
How do webhooks work?
When you create an export job, optionally provide a webhookUrl. We'll POST to that URL when the job completes (or fails) with the job status and a secure download link. Webhook payloads are HMAC-signed for security.
Pricing & Billing
How much does ExportKit cost?
We have a free tier with 100K rows/month. Our Pro plan (1M rows/month) is free during Early Access — no credit card required. Enterprise pricing is available on request.
What counts as a 'row'?
One record in your dataset = one row. For example, exporting 1,000 customer records counts as 1,000 rows, regardless of format (CSV, JSON, or Excel). All plans have a hard cap — no surprise overage charges.
Can I set spending limits?
Yes. Set hard caps on monthly row usage and get alerts when you approach your limit. This is especially useful for autonomous AI agents to prevent runaway costs.
Do you offer enterprise pricing?
Yes. Contact us for custom pricing, dedicated support, SLAs, and on-premise deployment options.
Security & Compliance
Is ExportKit GDPR compliant?
Yes. We provide data export endpoints (Right to Portability), account deletion (Right to Erasure), and configurable data retention policies. See our privacy policy for full details.
Where is my data stored?
Export files are stored in Cloudflare R2 (S3-compatible) with configurable retention (default: 7 days). Files are automatically deleted after expiry. We use Neon Postgres for metadata.
How do you handle authentication?
API authentication uses X-API-Key headers with SHA-256 hashed keys. You can scope keys to specific permissions, set IP allowlists, and revoke keys instantly from the dashboard.
Do you have audit logs?
Yes. All API requests, key usage, and export jobs are logged with timestamps, IP addresses, and user agents. Audit logs are available in the dashboard.
Technical
How do you handle large datasets without timeouts?
We use streaming and background job processing. When you create an export, we return a job ID immediately. The export runs asynchronously in a BullMQ worker, and you get notified via webhook or email when it's ready.
What happens if an export fails?
Failed jobs are automatically retried (up to 3 attempts with exponential backoff). If all retries fail, you'll receive a failure notification via webhook with error details.
Can I track export progress in real-time?
Yes. Poll GET /api/jobs/:id to get the current progress percentage, or provide a webhookUrl to receive status updates automatically.
How long are export files available?
Default retention is 7 days. After that, files are automatically deleted. You can configure custom retention periods (1-90 days) in your account settings.
What's your uptime SLA?
We target 99.9% uptime. Enterprise plans include SLAs with guaranteed uptime and priority support.
Support
How do I get help?
Email us at support@exportkit.dev or use the chat widget in the dashboard. We typically respond within 24 hours (faster for paid plans).
Do you have documentation?
Yes! Full API reference, integration guides, and code examples are available at docs.exportkit.dev.
Can I request features?
Absolutely. We prioritize features based on customer feedback. Email us at feedback@exportkit.dev with your use case.