API Authentication

Overview

The Markdown Converter API uses API key authentication to secure access to all endpoints. API keys provide a simple and secure way to authenticate your requests while allowing you to track usage and manage access control.

Creating an API Key

Getting Started

To use the API, you need an active Starter, Pro, or Scale plan subscription.

Step 1: Access Your Dashboard

Log into your account at app.markdownconverters.com

Step 2: Navigate to API Page

From your dashboard, navigate to the "API" section in the main menu.

Step 3: Create API Key

  • Select a descriptive name for your API key
  • Choose an expiry duration (recommended: 90 days for production, shorter for testing)
  • Click "Create API Key"
  • Copy and securely store your API key immediately

Important: Your API key will only be displayed once. Store it securely and never share it publicly.

Using Your API Key

Include your API key in the X-API-Key header for all API requests to api.markdownconverters.com.

Example Request

curl -X POST https://api.markdownconverters.com/api/v1/convert \
 -H "X-API-Key: your_api_key_here" \
 -H "Content-Type: application/json" \
 -d '{
 "source_type": "file",
 "file": "base64_encoded_content",
 "options": {
 "ocr_type": "basic"
 }
 }'

Security Best Practices

Do

  • Store API keys in environment variables
  • Use different keys for different environments
  • Rotate keys regularly (every 90 days)
  • Monitor API usage regularly
  • Use HTTPS for all requests

Don't

  • ×Commit keys to version control
  • ×Share keys in chat or email
  • ×Use keys in client-side code
  • ×Leave keys with unlimited expiry
  • ×Use the same key across all projects

Authentication Errors

401 Unauthorized

Returned when the API key is missing or invalid.

{
 "detail": "Invalid or missing API key"
}

403 Forbidden

Returned when the API key is valid but lacks permission for the requested operation.

{
 "detail": "Insufficient permissions for this operation"
}

429 Too Many Requests

Returned when you exceed your plan's rate limits.

{
 "detail": "Rate limit exceeded. Please try again later.",
 "retry_after": 60
}

Next Steps