Skip to content

Get your email preferences

The email_preferences.get operation: GET /api/v1/email_preferences in the REST API and the email_preferences_get tool in the MCP server.

GET/api/v1/email_preferences

Returns which of Ownrecord's own emails you get. Account emails (welcome, security notices, plan and billing notices, legal changes) always go out and never contain promotions. The topics here are the ones you can change: onboarding reminders and the monthly usage summary (on unless you turn them off), product updates (only if you opt in) and sub-processor changes (subscribe to them; owners and admins of organizations that accepted the DPA always get them).

Any signed-in user, for their own account.

At a glance

  • REST: GET /api/v1/email_preferences
  • MCP tool: email_preferences_get
  • Operation ID: email_preferences.get
  • Scope: Platform
  • Permission: account:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the account:read scope
  • Since: M12

Request

Query parameters

FieldTypeRequiredDescription
tokenstringNo

Response

200 OK with a JSON object:

FieldTypeDescription
object"email_preferences"
userIdusr_… ID
topicsarray of object
topics[].topicone of onboarding_nudges, usage_summary, product_updates, subprocessor_changes
topics[].labelstring
topics[].descriptionstring
topics[].consentone of service, marketing
topics[].enabledboolean
topics[].changedAtdate-time or null
updatedAtdate-time or null

Examples

Defaults

HTTP
GET /api/v1/email_preferences
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "email_preferences",
  "userId": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
  "topics": [
    {
      "topic": "onboarding_nudges",
      "label": "Onboarding reminders",
      "description": "A reminder 2 and 7 days after you create an organization, while setup steps are still open.",
      "consent": "service",
      "enabled": true,
      "changedAt": null
    },
    {
      "topic": "usage_summary",
      "label": "Monthly usage summary",
      "description": "Your live volume, Ownrecord fees and an estimate of what a platform merchant of record would cost.",
      "consent": "service",
      "enabled": true,
      "changedAt": null
    },
    {
      "topic": "product_updates",
      "label": "Product updates",
      "description": "A digest of new features from the changelog. Only if you opt in.",
      "consent": "marketing",
      "enabled": false,
      "changedAt": null
    },
    {
      "topic": "subprocessor_changes",
      "label": "Sub-processor changes",
      "description": "Notice of a new or replaced sub-processor, 30 days ahead. Owners and admins of organizations that accepted the DPA always get it.",
      "consent": "service",
      "enabled": false,
      "changedAt": null
    }
  ],
  "updatedAt": null
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A signed-in user sent a link token.Fix the fields listed in details.issues and send the request again.
permission_denied403The caller isn't a signed-in person, or the email-preferences link isn't valid.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.