Help Center
How can we help? 👋

Overview

Programmatic access to templates and design systems: authentication, endpoints, and resources.

The Email Love Builder API provides programmatic access to templates, design systems, and plugin functionality. This overview covers authentication, base endpoints, and key resources.

API Basics

Base URL

All API requests should be made to:

https://api.emaillove.com/api

Authentication

All API requests require a Bearer token (your API key) in the Authorization header:

Authorization: Bearer ef_xxxxxxxxxxxxxxxxxxxxx

Your API key can be generated in Email Love Builder at Settings > API Keys. Keys always start with ef_.

Rate Limiting

Each API key is limited to 100 requests per minute. If you exceed this limit, the API will return a 429 (Too Many Requests) response. Wait briefly before retrying.

Key Endpoints

Templates

POST /api/templates

Create a new email template in your workspace.

GET /api/templates

Retrieve all templates in your workspace.

GET /api/templates/:id

Retrieve a specific template by ID.

PUT /api/templates/:id

Update template properties or content.

DELETE /api/templates/:id

Delete a template from your workspace.

Design Systems

POST /api/plugin/design-systems/:id/sync

Sync design system components from Figma. Used by the Email Love plugin to push components to your design system.

GET /api/plugin/design-systems/:id/changes

Retrieve components that have changed since a specific timestamp. Useful for detecting updates and conflicts when syncing with Figma.

Common Use Cases

Automated Template Creation

Use the Templates endpoints to programmatically create, update, and manage templates. Integrate with your workflow automation tools to generate templates based on data or events.

Design System Sync Automation

Integrate component syncing with your CI/CD pipeline or design tool workflows to automatically keep your Email Love Builder design system in sync with your source designs.

Template Management

Build custom interfaces for template organization, search, and management using the API.

Response Format

All API responses are returned in JSON format. Successful requests return the created or modified resource along with relevant metadata.

Error Responses

Errors include an error code and descriptive message:

{
  "error": "invalid_api_key",
  "message": "The provided API key is not valid"
}

Best Practices

  • Use Bearer Token Authentication: Always include your API key in the Authorization header
  • Handle Rate Limits: Implement exponential backoff when approaching the 100 requests per minute limit
  • Validate Responses: Check response status codes and error messages to handle failures gracefully
  • Store API Keys Securely: Never commit API keys to version control or expose them in client-side code
  • Generate Workspace-Specific Keys: Create separate API keys for different integrations or purposes

Security Considerations

  • API keys grant full access to your workspace: treat them as secrets
  • Rotate API keys periodically for enhanced security
  • Revoke keys that are no longer needed (go to Settings > API Keys > Revoke)
  • Never share API keys via email or unsecured channels
  • Use API keys only with HTTPS connections

Detailed Documentation

For complete endpoint documentation including request bodies, response schemas, and code examples, see the full API reference in the repository.

Examples

Authenticate and List Templates

curl -X GET https://api.emaillove.com/api/templates \
  -H "Authorization: Bearer ef_xxxxxxxxxxxxxxxxxxxxx"

Create a New Template

curl -X POST https://api.emaillove.com/api/templates \
  -H "Authorization: Bearer ef_xxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome Email",
    "description": "Onboarding email for new users"
  }'

Need Help?

  • Review endpoint-specific documentation in the detailed reference
  • Check the Figma Plugin Guide for plugin-specific API usage
  • Contact our support team for integration assistance

Changelog

API updates and new endpoints are documented in our changelog. Check back regularly for new features and improvements.

Did this answer your question?
😞
😐
🤩