# MailCheap > The affordable newsletter for the agentic era: a newsletter app where you pay for the emails you send, not for dormant subscribers, for a fraction of what other platforms charge. Write and schedule issues, send them to your list and publish them on the web from the dashboard, or let an AI agent do it: everything a customer does in the dashboard also works through a REST API and an MCP server, with the same checks and limits. REST API: https://app.tacoandtell.com/api/v1, with Authorization: Bearer . MCP server (Streamable HTTP): https://app.tacoandtell.com/mcp, same key, or OAuth for apps like ChatGPT, Claude and Grok Bot. ## Docs - [Getting started](https://app.tacoandtell.com/docs): Make a first request and connect an AI assistant. - [Authentication](https://app.tacoandtell.com/docs/authentication): API keys, their three levels and the rate limits. - [Errors](https://app.tacoandtell.com/docs/errors): The error shape and every code. - [MCP](https://app.tacoandtell.com/docs/mcp): The MCP server, its tools and setup for ChatGPT, Claude, Grok Bot, Claude Code, Codex and Cursor. - [API reference](https://app.tacoandtell.com/docs/api): Every endpoint with its parameters and an example. - [OpenAPI document](https://app.tacoandtell.com/api/v1/openapi.json): the API as OpenAPI 3.1. - [Full reference](https://app.tacoandtell.com/llms-full.txt): every endpoint and MCP tool in Markdown. ## Endpoints ### Overview - [Get the overview](https://app.tacoandtell.com/docs/api#get-overview): GET /api/v1/overview (MCP tool get_overview) ### Newsletters - [List newsletters](https://app.tacoandtell.com/docs/api#list-newsletters): GET /api/v1/newsletters (MCP tool list_newsletters) - [Get a newsletter](https://app.tacoandtell.com/docs/api#get-newsletter): GET /api/v1/newsletters/{id} (MCP tool get_newsletter) - [Create a newsletter](https://app.tacoandtell.com/docs/api#create-newsletter): POST /api/v1/newsletters (MCP tool create_newsletter) - [Update a newsletter](https://app.tacoandtell.com/docs/api#update-newsletter): PATCH /api/v1/newsletters/{id} (MCP tool update_newsletter) - [Check a slug](https://app.tacoandtell.com/docs/api#check-newsletter-slug): GET /api/v1/newsletters/slugs/{slug} (MCP tool check_newsletter_slug) - [Send a test of the welcome email](https://app.tacoandtell.com/docs/api#send-welcome-test-email): POST /api/v1/newsletters/{id}/welcome-test (MCP tool send_welcome_test_email) ### Campaigns - [List campaigns](https://app.tacoandtell.com/docs/api#list-campaigns): GET /api/v1/campaigns (MCP tool list_campaigns) - [Get a campaign](https://app.tacoandtell.com/docs/api#get-campaign): GET /api/v1/campaigns/{id} (MCP tool get_campaign) - [Get a campaign's report](https://app.tacoandtell.com/docs/api#get-campaign-report): GET /api/v1/campaigns/{id}/report (MCP tool get_campaign_report) - [Create a draft campaign](https://app.tacoandtell.com/docs/api#create-campaign): POST /api/v1/campaigns (MCP tool create_campaign) - [Update a draft campaign](https://app.tacoandtell.com/docs/api#update-campaign): PATCH /api/v1/campaigns/{id} (MCP tool update_campaign) - [Delete a draft campaign](https://app.tacoandtell.com/docs/api#delete-campaign): DELETE /api/v1/campaigns/{id} (MCP tool delete_campaign) - [Duplicate a campaign](https://app.tacoandtell.com/docs/api#duplicate-campaign): POST /api/v1/campaigns/{id}/duplicate (MCP tool duplicate_campaign) - [Send a test email](https://app.tacoandtell.com/docs/api#send-test-email): POST /api/v1/campaigns/{id}/test (MCP tool send_test_email) - [Schedule a campaign](https://app.tacoandtell.com/docs/api#schedule-campaign): POST /api/v1/campaigns/{id}/schedule (MCP tool schedule_campaign) - [Cancel a scheduled send](https://app.tacoandtell.com/docs/api#unschedule-campaign): POST /api/v1/campaigns/{id}/unschedule (MCP tool unschedule_campaign) - [Send a campaign now](https://app.tacoandtell.com/docs/api#send-campaign): POST /api/v1/campaigns/{id}/send (MCP tool send_campaign) - [Send a campaign to more contacts](https://app.tacoandtell.com/docs/api#send-campaign-to-more): POST /api/v1/campaigns/{id}/send-more (MCP tool send_campaign_to_more) - [Pause a campaign](https://app.tacoandtell.com/docs/api#pause-campaign): POST /api/v1/campaigns/{id}/pause (MCP tool pause_campaign) - [Resume a paused campaign](https://app.tacoandtell.com/docs/api#resume-campaign): POST /api/v1/campaigns/{id}/resume (MCP tool resume_campaign) - [Update a campaign's archive page](https://app.tacoandtell.com/docs/api#update-campaign-archive): PATCH /api/v1/campaigns/{id}/archive (MCP tool update_campaign_archive) - [Preview the list cleanup of a send](https://app.tacoandtell.com/docs/api#preview-campaign-cleanup): GET /api/v1/campaigns/{id}/cleanup-preview (MCP tool preview_campaign_cleanup) ### Contacts - [List contacts](https://app.tacoandtell.com/docs/api#list-contacts): GET /api/v1/contacts (MCP tool list_contacts) - [Get a contact](https://app.tacoandtell.com/docs/api#get-contact): GET /api/v1/contacts/{id} (MCP tool get_contact) - [Add a contact](https://app.tacoandtell.com/docs/api#add-contact): POST /api/v1/contacts (MCP tool add_contact) - [Unsubscribe or reactivate a contact](https://app.tacoandtell.com/docs/api#update-contact-status): PATCH /api/v1/contacts/{id} (MCP tool update_contact_status) - [Delete a contact](https://app.tacoandtell.com/docs/api#delete-contact): DELETE /api/v1/contacts/{id} (MCP tool delete_contact) - [Import contacts](https://app.tacoandtell.com/docs/api#import-contacts): POST /api/v1/contacts/import (MCP tool import_contacts) - [Export contacts](https://app.tacoandtell.com/docs/api#export-contacts): GET /api/v1/contacts/export (MCP tool export_contacts) ### Domains - [List domains](https://app.tacoandtell.com/docs/api#list-domains): GET /api/v1/domains (MCP tool list_domains) - [Add a domain](https://app.tacoandtell.com/docs/api#add-domain): POST /api/v1/domains (MCP tool add_domain) - [Check a domain's DNS records](https://app.tacoandtell.com/docs/api#check-domain): POST /api/v1/domains/{id}/check (MCP tool check_domain) - [Remove a domain](https://app.tacoandtell.com/docs/api#remove-domain): DELETE /api/v1/domains/{id} (MCP tool remove_domain) ### Images - [List images](https://app.tacoandtell.com/docs/api#list-images): GET /api/v1/images (MCP tool list_images) - [Upload an image](https://app.tacoandtell.com/docs/api#upload-image): POST /api/v1/images (MCP tool upload_image) ### API keys - [List API keys](https://app.tacoandtell.com/docs/api#list-api-keys): GET /api/v1/api-keys (MCP tool list_api_keys) - [Create an API key](https://app.tacoandtell.com/docs/api#create-api-key): POST /api/v1/api-keys (MCP tool create_api_key) - [Revoke an API key](https://app.tacoandtell.com/docs/api#revoke-api-key): DELETE /api/v1/api-keys/{id} (MCP tool revoke_api_key) - [List connected apps](https://app.tacoandtell.com/docs/api#list-connected-apps): GET /api/v1/connected-apps (MCP tool list_connected_apps) - [Disconnect an app](https://app.tacoandtell.com/docs/api#revoke-connected-app): DELETE /api/v1/connected-apps/{id} (MCP tool revoke_connected_app) ### Billing - [Get the plan and usage](https://app.tacoandtell.com/docs/api#get-billing): GET /api/v1/billing (MCP tool get_billing) - [Change plan](https://app.tacoandtell.com/docs/api#change-plan): POST /api/v1/billing/change-plan (MCP tool change_plan) - [Open the billing portal](https://app.tacoandtell.com/docs/api#open-billing-portal): POST /api/v1/billing/portal (MCP tool open_billing_portal)