WordPress API
The WordPress API content source connects Feedotter directly to your WordPress site's REST API, pulling posts, custom post types, and taxonomy-filtered content into your email campaigns without an RSS
Getting Started
Navigate to Content Sources → Add Content Source and select WordPress API from the source type list.

The editor opens to four tabs: Details, Fields, Filters, and Preview. Work through them in order the first time you set up a source.
Tab 1 — Details
This tab is where you connect your site and configure what content to pull.
Connect Your Site
Enter your WordPress site's base URL (e.g. https://www.example.com) in the Your WordPress Website URL field, then click Load Site Data.
FeedOtter will reach your site's REST API, verify the connection, and pre-load your available post types, tags, and categories. A success toast confirms the connection. If the connection fails, an error message appears below the field explaining what went wrong.

Tip: You only need to click Load Site Data once when setting up a new source. When editing an existing source, this data loads automatically.
Authentication (optional)
By default, Feedotter connects to your site without credentials and pulls only published posts — no authentication required for public content.
If you need to access drafts, scheduled posts, private posts, or a password-protected site, click "Connecting to a private site, or need drafts, scheduled, or private posts? Add authentication" to expand the Authentication section.
We recommend created a dedicated WordPress user for this integration. An example would be:

Username
Your WordPress username (must have Editor or Administrator role)
Application Password
Generated in your WordPress dashboard under Users → Profile → Application Passwords
Click Test Connection to verify your credentials before saving.
Note: Application Passwords are different from your login password.
Settings
Once connected, the Settings section appears with the following options:
Max Number of Posts to Include How many posts FeedOtter retrieves per sync. Default is 25, maximum is 100.
Post Type Defaults to Posts (the standard WordPress post type). If your site uses Custom Post Types (e.g. Case Studies, Events, Products), select the correct type from the dropdown. FeedOtter auto-discovers all REST-enabled post types from your site.
If a post type doesn't appear in the dropdown (it may not have show_in_rest: true set in WordPress), click Enter manually and type the post type's REST base slug directly (e.g. case-study, event).
Status Controls which post statuses FeedOtter retrieves. Defaults to Publish (live, publicly visible posts). You can select multiple statuses.
Publish
Live, publicly visible posts
No
Future (Scheduled)
Posts scheduled for a future date
Yes
Draft
Unpublished drafts
Yes
Pending Review
Posts awaiting editorial review
Yes
Private
Visible only to logged-in users
Yes
If you select any status other than Publish without having entered authentication credentials, an inline warning will prompt you to add them.
Permalink Structure (appears only when "Future" is selected)
WordPress does not return a real URL for scheduled posts through its API. To work around this, enter your site's permalink structure so FeedOtter can construct the final URL for each scheduled post.
Copy the value from your WordPress dashboard under Settings → Permalinks → Custom Structure (e.g. /blog/%postname%/).
Note: This field only appears when "Future (Scheduled)" is one of the selected statuses. Published and private posts already have correct URLs from WordPress. Draft and pending posts don't have a final URL yet, so they retain a
?p=IDfallback link.
Tab 2 — Fields
The Fields tab controls how WordPress post data is mapped to FeedOtter's standard content fields and any custom fields you want to make available in your templates.

When you open this tab, FeedOtter samples up to 10 recent posts from your site and discovers all the available JSON paths — including standard fields like title/rendered and excerpt/rendered, as well as plugin data like Advanced Custom Fields groups (e.g. acf/people_position).
The number of discovered fields appears at the top: "42 fields found by sampling recent 'posts' items."
Standard Field Rows
Title
Uses title/rendered
Description
Uses excerpt/rendered
Content
Uses content/rendered (full post body)
URL
Uses the post's link field
Date
Uses date (publish date)
Image URL
If your posts have a featured image specified you can use the wp:featuredmedia/source_url. If left blank, Feedotter will attempt to detect the featured image automatically.
Leaving a row blank means FeedOtter uses the automatic value listed above. You only need to set a mapping if you want to pull data from a different field — for example, mapping Description to an ACF custom excerpt field.
For best consistent results, we recommend mapping up all fields.
Custom Fields
Click + Add Row at the bottom of the table to create additional fields. These are surfaced in curated email templates as custom.<Name>.value. Give each custom field a descriptive name, select its type (Text, Rich Text, URL, Date, Image URL), and pick the path from the dropdown.
Manual Path Entry
If a field doesn't appear in the dropdown (for example, an ACF field that happens to be empty on every post in the recent sample), check the "Type paths manually" box. All rows switch to free-text inputs so you can type the path directly (e.g. acf/people_position).
Click Reload fields at any time to re-sample the site and refresh the dropdown list.
Tab 3 — Filters
The Filters tab gives you fine-grained control over which posts FeedOtter pulls. All filters are optional.

Tags and Categories
Each has a mode selector and a multi-select term picker:
Include tags / Include categories — only return posts assigned to the selected terms
Exclude tags / Exclude categories — return all posts except those assigned to the selected terms
Leave the mode set to None to apply no filter
Start typing in the picker to search terms by name. If a term doesn't appear (sites with more than 100 terms cap the initial list), use the "Can't find it? Add [term] by ID" link to look it up directly by its WordPress term ID.
Custom Taxonomies
If your site has Custom Taxonomies registered to the selected Post Type, they appear automatically below Categories after you load the site data. Each one works the same way as Tags and Categories — select Include or Exclude, then pick terms.
If no taxonomies appear, click "Load tags, categories & taxonomies" to trigger the lookup. A message will confirm if the post type has no additional custom taxonomies.
Date Filter
Restrict posts to a rolling time window using the Published date filter.
Set the mode to Published in the last and enter a number of days (e.g.
30)Leave the mode set to None to return posts from any date

Note: The date filter uses each post's WordPress publish date by default. If you've mapped the Date field on the Fields tab to
modifiedormodified_gmt, the filter uses last-modified date instead.
Tab 4 — Preview
The Preview tab lets you verify that FeedOtter is pulling the right content before you use this source in a campaign.

Click Generate Preview. FeedOtter saves your current settings and fetches a live sample of up to 10 posts from your site, applying all the filters and field mappings you've configured.
Each post card displays:
Thumbnail image
Title
Description / excerpt
URL
Publish date
If no posts appear, check:
The correct Post Type is selected on the Details tab
Your Status selection matches posts that actually exist
Your Filters are not excluding everything (try removing filters temporarily)
Authentication credentials are set if you're targeting non-published content
Saving the Source
Click Add Source (new) or Save (edit) at the bottom right of any tab to persist all settings. The source is now available to use in curated campaigns and automated RSS newsletters.
Last updated

