# Spotzee > Marketing automation for every business — purpose-built for financial services ## Docs - [Generate email subject line suggestions](https://docs.spotzee.com/api-reference/ai/generate-email-subject-line-suggestions.md): Generates multiple creative and effective subject line alternatives based on your input. Our AI analyses your original subject line and creates variations optimised for open rates, engagement, and deliverability while avoiding spam triggers. - [Score email subject line quality](https://docs.spotzee.com/api-reference/ai/score-email-subject-line-quality.md): Analyzes and scores your email subject line based on multiple criteria including readability, word count, sentiment, spam indicators, and more. Uses local analysis algorithms to provide detailed breakdown of scores for each criterion without making external API calls. - [Create an API key](https://docs.spotzee.com/api-reference/api-keys/create-an-api-key.md): Creates a new API key. The full key `value` is returned exactly once in this response — store it immediately. Subsequent reads return only the masked prefix and last four characters. - [Get an API key](https://docs.spotzee.com/api-reference/api-keys/get-an-api-key.md): Returns metadata for a single API key. The `value` is returned in masked form. - [List API keys](https://docs.spotzee.com/api-reference/api-keys/list-api-keys.md): Returns a paginated list of API keys in the project. Key values are returned in masked form. - [Revoke an API key](https://docs.spotzee.com/api-reference/api-keys/revoke-an-api-key.md): Revokes the API key. Subsequent requests using this key will be rejected with 401. - [Update an API key](https://docs.spotzee.com/api-reference/api-keys/update-an-api-key.md): Updates an API key’s name, description, scope, or role. The key value cannot be changed. - [Create a campaign](https://docs.spotzee.com/api-reference/campaigns/create-a-campaign.md): Creates a new campaign. To schedule a blast send, follow up with `PATCH /:campaignId` setting `state: "scheduled"` and `send_at`. - [Delete a campaign](https://docs.spotzee.com/api-reference/campaigns/delete-a-campaign.md): Archives the campaign on first call; a second call against an already-archived campaign permanently deletes it. - [Duplicate a campaign](https://docs.spotzee.com/api-reference/campaigns/duplicate-a-campaign.md): Creates a draft copy of the campaign with the same lists, templates, and settings. - [Get a campaign](https://docs.spotzee.com/api-reference/campaigns/get-a-campaign.md): Returns a single campaign by numeric identifier, including delivery counters when present. - [List campaigns](https://docs.spotzee.com/api-reference/campaigns/list-campaigns.md): Returns a paginated list of campaigns in the project, ordered by `created_at` descending by default. - [Render a campaign preview](https://docs.spotzee.com/api-reference/campaigns/render-a-campaign-preview.md): Renders the campaign’s primary template against representative variables and returns the channel-specific preview output. - [Trigger a campaign send for one contact](https://docs.spotzee.com/api-reference/campaigns/trigger-a-campaign-send-for-one-contact.md): Fires a `trigger`-type campaign send for a single contact. The supplied `event` payload is available to template Handlebars as `{{event}}`. - [Update a campaign](https://docs.spotzee.com/api-reference/campaigns/update-a-campaign.md): Partial update of a campaign. To schedule a blast: set `state: "scheduled"` and `send_at`. To cancel a running blast: set `state: "aborted"`. - [Delete a contact](https://docs.spotzee.com/api-reference/contacts/delete-a-contact.md): Deletes a single contact, looked up by `external_id` when called with a project-scoped key, or by numeric ID when called from the admin scope. Deletion is asynchronous; the response is 204 once the job is queued. - [Delete contacts in bulk](https://docs.spotzee.com/api-reference/contacts/delete-contacts-in-bulk.md): Deletes one or more contacts identified by `external_id`. Supply repeated `?user_id=` query parameters for each contact to remove. Deletion is asynchronous; the response is 204 once the batch is queued. - [Get a contact](https://docs.spotzee.com/api-reference/contacts/get-a-contact.md): Returns a single contact, looked up by `external_id` when called with a project-scoped key, or by numeric ID when called from the admin scope. Custom-attribute fields not approved for the caller’s role are filtered out. - [List contacts](https://docs.spotzee.com/api-reference/contacts/list-contacts.md): Returns a paginated list of contacts in the project, ordered by `id` descending by default. Supports cursor-based pagination via `cursor` and `page`, and free-text search via `q` across `external_id`, `email`, `phone`, and `anonymous_id`. - [Upsert contacts](https://docs.spotzee.com/api-reference/contacts/upsert-contacts.md): Creates or updates up to 100 contacts in a single call. Each item must include either `anonymous_id` or `external_id`; supplying both links the two identifiers. Processing is asynchronous — the response is 204 once the batch is queued. - [Generate date and time data](https://docs.spotzee.com/api-reference/data/generate-date-and-time-data.md): Generates dates using various methods from Faker.js. Supports 10 different methods: - anytime: Random date in past or future - between: Date between two boundaries - betweens: Multiple dates between boundaries - birthdate: Realistic birthdate based on age or year - future: Future date within specifi… - [Generate fake contact data](https://docs.spotzee.com/api-reference/data/generate-fake-contact-data.md): Generates business contact information including names, emails, phone numbers, and company details. Perfect for testing CRM systems and contact management features. - [Generate fake name data](https://docs.spotzee.com/api-reference/data/generate-fake-name-data.md): Generates realistic names with optional gender specification. Includes first name, last name, full name with titles, and gender information. Supports multiple locales. - [Generate fake person data](https://docs.spotzee.com/api-reference/data/generate-fake-person-data.md): Generates realistic person data including names, emails, addresses, and more. Provides high-quality synthetic data generation with support for localization and deterministic generation using seeds. - [DNS Security Health Check](https://docs.spotzee.com/api-reference/dns/dns-security-health-check.md): Comprehensive DNS security assessment with enhanced grading. Evaluates DNSSEC, DANE, CAA records, privacy settings, operational security, and more. Includes domain classification, weighted security scoring, detailed subscores, and context-aware recommendations. - [Perform DNS record lookup](https://docs.spotzee.com/api-reference/dns/perform-dns-record-lookup.md): Performs comprehensive DNS record lookups for a hostname. Supports all major record types (A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA) with optional DNSSEC validation. Results are cached for performance optimization. - [Verify TCP port connectivity](https://docs.spotzee.com/api-reference/dns/verify-tcp-port-connectivity.md): Tests TCP connectivity to a specific domain/IP address and port. Useful for checking if services are accessible, debugging network issues, and monitoring service availability. Supports both IPv4 and IPv6 addresses. - [Verify URL accessibility](https://docs.spotzee.com/api-reference/dns/verify-url-accessibility.md): Comprehensively tests URL accessibility including HTTP status, response time, redirect chains, and SSL certificate validation. Follows redirects automatically and provides detailed information about the entire request chain. - [Check domain blacklist status](https://docs.spotzee.com/api-reference/email/check-domain-blacklist-status.md): Checks if a domain is listed on major email blacklists (DBLs). Helps identify reputation issues that may affect email deliverability. - [Check email provider](https://docs.spotzee.com/api-reference/email/check-email-provider.md): Identify the email provider for an email address or domain - [Check for temporary email](https://docs.spotzee.com/api-reference/email/check-for-temporary-email.md): Check if email address or domain is from a temporary email provider - [Check IP blacklist status](https://docs.spotzee.com/api-reference/email/check-ip-blacklist-status.md): Checks if an IPv4 or IPv6 address is listed on major email blacklists (RBLs). Supports checking against popular blacklists or comprehensive list. Essential for email deliverability diagnostics. - [Check URL for malicious content](https://docs.spotzee.com/api-reference/email/check-url-for-malicious-content.md): Check if URL is flagged as malicious or suspicious - [Comprehensive email health check](https://docs.spotzee.com/api-reference/email/comprehensive-email-health-check.md): Performs a comprehensive health check for an email domain including MX records, SPF, DMARC, DKIM, and blacklist status. Returns overall health score and actionable recommendations for improving email deliverability. - [Generate DMARC record](https://docs.spotzee.com/api-reference/email/generate-dmarc-record.md): Generates a DMARC (Domain-based Message Authentication, Reporting & Conformance) record with specified policies. DMARC helps protect domains from email spoofing and provides visibility into email authentication. - [Generate SPF record](https://docs.spotzee.com/api-reference/email/generate-spf-record.md): Generates a properly formatted SPF (Sender Policy Framework) record for a domain. Supports IPv4/IPv6 addresses, hostnames, include mechanisms, and various policies. The generated record helps prevent email spoofing and improves deliverability. - [Get email tester endpoint](https://docs.spotzee.com/api-reference/email/get-email-tester-endpoint.md): Get temporary email address for testing email delivery - [Get email tester results](https://docs.spotzee.com/api-reference/email/get-email-tester-results.md): Get received emails for a test email address - [Lookup DMARC record](https://docs.spotzee.com/api-reference/email/lookup-dmarc-record.md): Lookup and analyze DMARC record for a domain - [Lookup MX records](https://docs.spotzee.com/api-reference/email/lookup-mx-records.md): Retrieves Mail Exchange (MX) records for a domain. Returns mail server hostnames and their priorities, sorted by priority. Essential for email configuration and deliverability verification. - [Lookup sender score](https://docs.spotzee.com/api-reference/email/lookup-sender-score.md): Lookup sender reputation score for an IP address - [Lookup SPF record](https://docs.spotzee.com/api-reference/email/lookup-spf-record.md): Retrieves and analyzes the current SPF record for a domain. Provides the raw record, parsed mechanisms, validation warnings, and suggestions for improvement. - [Test SMTP email sending](https://docs.spotzee.com/api-reference/email/test-smtp-email-sending.md): Tests sending an actual email through an SMTP server with authentication. Validates server configuration, credentials, and email delivery capability. - [Test SMTP server](https://docs.spotzee.com/api-reference/email/test-smtp-server.md): Tests connectivity to an SMTP server by attempting to establish a connection. Useful for verifying mail server availability and basic configuration. - [Validate email address](https://docs.spotzee.com/api-reference/email/validate-email-address.md): Performs comprehensive email validation including syntax check, domain verification, MX record lookup, disposable email detection, and deliverability assessment. Returns risk score and suggestions. - [Validate email syntax](https://docs.spotzee.com/api-reference/email/validate-email-syntax.md): Validate email address syntax and format - [Track events](https://docs.spotzee.com/api-reference/events/track-events.md): Records one or more behavioural events against a contact. Events drive segmentation and journey triggers. Up to 100 events per request — supplying both `anonymous_id` and `external_id` on an event links the two identifiers. Optionally pass a `user` block to update the contact’s profile in the same c… - [Create a journey](https://docs.spotzee.com/api-reference/journeys/create-a-journey.md): Creates a new journey. Use `PUT /:journeyId/steps` to populate the step graph. - [Delete a journey](https://docs.spotzee.com/api-reference/journeys/delete-a-journey.md): Archives the journey on first call; a second call against an already-archived journey permanently deletes it. - [Get a journey](https://docs.spotzee.com/api-reference/journeys/get-a-journey.md): Returns a single journey by numeric identifier. - [List journeys](https://docs.spotzee.com/api-reference/journeys/list-journeys.md): Returns a paginated list of journeys in the project. - [Trigger a journey entrance for one contact](https://docs.spotzee.com/api-reference/journeys/trigger-a-journey-entrance-for-one-contact.md): Manually inserts a contact into a journey at a specific entrance step. Useful for ad-hoc triggers and back-filling missed entries. - [Update a journey](https://docs.spotzee.com/api-reference/journeys/update-a-journey.md): Updates a journey’s name, description, tags, or status. Set `status: "off"` to pause; `status: "live"` to resume. - [Create a list](https://docs.spotzee.com/api-reference/lists/create-a-list.md): Creates a new static or dynamic list. Static lists are populated by adding members directly. Dynamic lists are materialised from a rule tree and refreshed when contacts change. - [Delete a list](https://docs.spotzee.com/api-reference/lists/delete-a-list.md): Archives the list on first call; a second call against an already-archived list permanently deletes it. - [Get a list](https://docs.spotzee.com/api-reference/lists/get-a-list.md): Returns a single list by numeric identifier, including its rule tree if dynamic. - [List lists](https://docs.spotzee.com/api-reference/lists/list-lists.md): Returns a paginated list of lists in the project, ordered by `updated_at` descending by default. Includes both static (manually managed) and dynamic (rule-driven) lists. - [Update a list](https://docs.spotzee.com/api-reference/lists/update-a-list.md): Updates a list’s name, tags, or rule tree. For dynamic lists, providing a new `rule` triggers a re-materialisation of members. - [Create an organisation API key](https://docs.spotzee.com/api-reference/organisation/create-an-organisation-api-key.md): Creates a new organisation-scoped API key (`ok_…`). The full `value` is returned exactly once. The key’s role cannot exceed the creator’s own role. - [Get an organisation API key](https://docs.spotzee.com/api-reference/organisation/get-an-organisation-api-key.md): Returns metadata for a single organisation API key. The `value` is returned in masked form. - [List organisation API keys](https://docs.spotzee.com/api-reference/organisation/list-organisation-api-keys.md): Returns a paginated list of organisation API keys. Key values are returned in masked form. - [Revoke an organisation API key](https://docs.spotzee.com/api-reference/organisation/revoke-an-organisation-api-key.md): Revokes the organisation API key. Subsequent requests using this key will be rejected with 401. - [Update an organisation API key](https://docs.spotzee.com/api-reference/organisation/update-an-organisation-api-key.md): Updates the key’s metadata or role. The new role cannot exceed the caller’s own role. - [Get the current project](https://docs.spotzee.com/api-reference/projects/get-the-current-project.md): Returns the project the calling secret API key is scoped to, including the caller’s role and whether at least one delivery provider is configured. - [Validate mobile phone number syntax](https://docs.spotzee.com/api-reference/sms/validate-mobile-phone-number-syntax.md): Validates and analyzes mobile phone numbers from any country. Checks syntax validity, formats to international standard (E.164), identifies country and carrier information, and determines line type. Supports various input formats including national and international notations. - [Create a subscription type](https://docs.spotzee.com/api-reference/subscriptions/create-a-subscription-type.md): Creates a new opt-in subscription type bound to a single delivery channel. - [Get a subscription type](https://docs.spotzee.com/api-reference/subscriptions/get-a-subscription-type.md): Returns a single subscription type by numeric identifier. - [List subscription types](https://docs.spotzee.com/api-reference/subscriptions/list-subscription-types.md): Returns a paginated list of subscription types in the project. Subscription types are the opt-in channels a contact can subscribe to. - [Update a subscription type](https://docs.spotzee.com/api-reference/subscriptions/update-a-subscription-type.md): Updates the name and visibility of a subscription type. Channel cannot be changed. - [Create a tag](https://docs.spotzee.com/api-reference/tags/create-a-tag.md): Creates a new tag in the project. - [Delete a tag](https://docs.spotzee.com/api-reference/tags/delete-a-tag.md): Permanently deletes the tag. Existing tag-applications on contacts and segments are removed. - [Get a tag](https://docs.spotzee.com/api-reference/tags/get-a-tag.md): Returns a single tag by numeric identifier. - [List tags](https://docs.spotzee.com/api-reference/tags/list-tags.md): Returns a paginated list of tags in the project. `q` matches against tag name. - [Update a tag](https://docs.spotzee.com/api-reference/tags/update-a-tag.md): Renames a tag. - [Create a template](https://docs.spotzee.com/api-reference/templates/create-a-template.md): Creates a new template for a campaign. The `type` discriminator chooses the channel-specific `data` shape (email, text, push, webhook, in_app). - [Delete a template](https://docs.spotzee.com/api-reference/templates/delete-a-template.md): Permanently deletes a template. - [Get a template](https://docs.spotzee.com/api-reference/templates/get-a-template.md): Returns a single template by numeric identifier. - [List templates](https://docs.spotzee.com/api-reference/templates/list-templates.md): Returns a paginated list of message templates in the project. Each template is locale- and channel-specific, bound to a campaign. - [Render a template preview](https://docs.spotzee.com/api-reference/templates/render-a-template-preview.md): Compiles the template against the supplied `user`, `event`, and `context` payloads and returns the rendered output. Useful for previewing campaign content before sending. - [Send a proof of a template](https://docs.spotzee.com/api-reference/templates/send-a-proof-of-a-template.md): Renders the template with the supplied variables and sends a one-off proof to a single recipient. Useful for content review before launching a campaign. - [Update a template](https://docs.spotzee.com/api-reference/templates/update-a-template.md): Updates a template’s name and channel-specific `data`. Channel cannot be changed once set; the request body must use the same `type` as the existing template. - [Analyze text sentiment](https://docs.spotzee.com/api-reference/text/analyze-text-sentiment.md): Performs sentiment analysis on text using advanced NLP techniques. Returns detailed sentiment scores (positive, negative, neutral) along with confidence levels and key phrases that influenced the analysis. Useful for analyzing customer feedback, reviews, and social media content. - [Calculate text readability score](https://docs.spotzee.com/api-reference/text/calculate-text-readability-score.md): Analyzes text and provides comprehensive readability metrics including Flesch Reading Ease score, Flesch-Kincaid Grade Level, and qualitative assessment. Useful for content optimization and ensuring text is appropriate for target audiences. - [Changelog](https://docs.spotzee.com/changelog.md): Per-version changes to the Spotzee API — additions, deprecations, and removals. - [Errors](https://docs.spotzee.com/extended-api/errors.md): HTTP status codes, error body shape, and common error codes for the Extended API. - [Extended API](https://docs.spotzee.com/extended-api/introduction.md): Edge utilities — email validation, DNS lookups, SMS, AI text tools, and customer data services. - [Client type header](https://docs.spotzee.com/guides/api-client-type.md): Identify your traffic with x-spotzee-client-type so you get the right rate limits and Spotzee can tune for your workload. - [Idempotency](https://docs.spotzee.com/guides/api-idempotency.md): How to make POST and PATCH requests safely retryable with Idempotency-Key. - [Pagination](https://docs.spotzee.com/guides/api-pagination.md): Cursor pagination, sort directions, and result counts for list endpoints. - [Rate limits](https://docs.spotzee.com/guides/api-rate-limits.md): Per-key rate limits, response headers, and retry strategy for the Spotzee API. - [API versioning](https://docs.spotzee.com/guides/api-versioning.md): How the Spotzee API versions, how to pin a release, and how breaking changes are managed. - [Webhooks](https://docs.spotzee.com/guides/api-webhooks.md): How outgoing webhooks are signed, replay-protected, and retried. - [Authentication](https://docs.spotzee.com/guides/authentication.md): API key types, scopes, and rotation for the Spotzee API. - [Build a segment via the API](https://docs.spotzee.com/guides/build-segment-via-api.md): Define a dynamic membership rule programmatically so segments stay in sync with code-driven attributes. - [Channels](https://docs.spotzee.com/guides/channels.md): Send via email, SMS, WhatsApp, push, in-app, and webhooks — from one platform. - [Core concepts](https://docs.spotzee.com/guides/concepts.md): The building blocks of Spotzee — organisations, projects, contacts, segments, journeys, and channels. - [Send events from your backend](https://docs.spotzee.com/guides/event-ingestion.md): Track behaviour from your servers so segments, journeys, and reporting can react in real time. - [Trigger a journey](https://docs.spotzee.com/guides/journey-trigger.md): Drop a contact into a multi-step automation from your backend so welcomes, onboarding, and lifecycle flows fire on cue. - [Journeys](https://docs.spotzee.com/guides/journeys.md): Build multi-step, multi-channel automations with the visual journey builder. - [Bring your own provider](https://docs.spotzee.com/guides/providers.md): Connect your existing email, SMS, WhatsApp, and push delivery vendors so Spotzee sends on your behalf. - [Quickstart](https://docs.spotzee.com/guides/quickstart.md): Create your account, import contacts, and send your first campaign. - [Smart segments](https://docs.spotzee.com/guides/segments.md): Define dynamic audiences that update as customer data and behaviour change. - [Sync contacts from your CRM](https://docs.spotzee.com/guides/sync-contacts.md): Push contacts from your existing customer system into Spotzee in batches with idempotent retries. - [Trigger a one-off campaign](https://docs.spotzee.com/guides/trigger-campaign.md): Send a campaign on demand from your backend — the API equivalent of clicking Send in the UI. - [Welcome to Spotzee](https://docs.spotzee.com/index.md): Multi-channel marketing automation for every business — purpose-built for financial services. - [Errors](https://docs.spotzee.com/main-api/errors.md): HTTP status codes, error body shape, and the full code catalogue for the Main API. - [Main API](https://docs.spotzee.com/main-api/introduction.md): Programmatic access to contacts, segments, journeys, campaigns, projects, and organisation management. ## OpenAPI Specs - [openapi](https://apix.spotzee.com/api/openapi.json) ## Optional - [App](https://app.spotzee.com)