API & Schema Documentation | Space Monkey

Data Destination Schema

Space Monkey securely extracts Mailchimp data and provisions structured BigQuery tables automatically. Below is the exact schema definition for each destination table.

Connecting an AI assistant? See the MCP Server integration.
Enterprise API Schema URL:https://spacemonkey.igods.com/_api/public/v1/enterprise/schema

Implementation Notes

  • Auto-populated timestamps: The _synced_at field is automatically appended and populated by Space Monkey during every successful sync batch, representing the exact extraction time.
  • Complex JSON structures: To ensure maximum schema flexibility and prevent breaking Data Studio (formerly Looker Studio) connectors, nested Mailchimp objects (e.g., settings, tracking, stats) are stringified and stored as the STRING type. These can be parsed natively in BigQuery using JSON_EXTRACT or JSON_VALUE.
  • Idempotency: All tables employ a MERGE (upsert) strategy based on their primary keys. Safe re-runs will update existing records without duplication.

campaigns#

Mailchimp email campaigns and their core settings.

Field NameTypeMode
campaign_id
STRINGREQUIRED
web_id
INTEGERNULLABLE
type
STRINGNULLABLE
create_time
TIMESTAMPNULLABLE
archive_url
STRINGNULLABLE
long_archive_url
STRINGNULLABLE
status
STRINGNULLABLE
emails_sent
INTEGERNULLABLE
send_time
TIMESTAMPNULLABLE
content_type
STRINGNULLABLE
settings
STRINGNULLABLE
tracking
STRINGNULLABLE
report_summary
STRINGNULLABLE
variate_settings
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

lists#

Mailchimp audiences (lists) and high-level list stats.

Field NameTypeMode
list_id
STRINGREQUIRED
web_id
INTEGERNULLABLE
name
STRINGNULLABLE
contact
STRINGNULLABLE
campaign_defaults
STRINGNULLABLE
date_created
TIMESTAMPNULLABLE
stats
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

members#

Subscribers (members) within your audiences, including merge fields, status, and member stats.

Field NameTypeMode
member_id
STRINGREQUIRED
list_id
STRINGNULLABLE
email_address
STRINGNULLABLE
unique_email_id
STRINGNULLABLE
web_id
INTEGERNULLABLE
email_type
STRINGNULLABLE
status
STRINGNULLABLE
merge_fields
STRINGNULLABLE
stats
STRINGNULLABLE
ip_signup
STRINGNULLABLE
timestamp_signup
TIMESTAMPNULLABLE
ip_opt
STRINGNULLABLE
timestamp_opt
TIMESTAMPNULLABLE
member_rating
INTEGERNULLABLE
last_changed
TIMESTAMPNULLABLE
language
STRINGNULLABLE
vip
BOOLEANNULLABLE
location
STRINGNULLABLE
tags_count
INTEGERNULLABLE
tags
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

campaign_reports#

Aggregated performance metrics (opens, clicks, bounces) for each sent campaign.

Field NameTypeMode
campaign_id
STRINGREQUIRED
type
STRINGNULLABLE
list_id
STRINGNULLABLE
list_name
STRINGNULLABLE
subject_line
STRINGNULLABLE
preview_text
STRINGNULLABLE
emails_sent
INTEGERNULLABLE
abuse_reports
INTEGERNULLABLE
unsubscribed
INTEGERNULLABLE
send_time
TIMESTAMPNULLABLE
bounces
STRINGNULLABLE
forwards
STRINGNULLABLE
opens
STRINGNULLABLE
clicks
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

automations#

Classic automations and customer journey workflows.

Field NameTypeMode
automation_id
STRINGREQUIRED
create_time
TIMESTAMPNULLABLE
start_time
TIMESTAMPNULLABLE
status
STRINGNULLABLE
emails_sent
INTEGERNULLABLE
recipients
STRINGNULLABLE
settings
STRINGNULLABLE
tracking
STRINGNULLABLE
trigger_settings
STRINGNULLABLE
report_summary
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

segments#

Saved segments within your audiences.

Field NameTypeMode
segment_id
STRINGREQUIRED
list_id
STRINGNULLABLE
name
STRINGNULLABLE
member_count
INTEGERNULLABLE
type
STRINGNULLABLE
created_at
TIMESTAMPNULLABLE
updated_at
TIMESTAMPNULLABLE
options
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

tags#

Tags created and applied to audience members.

Field NameTypeMode
tag_id
STRINGREQUIRED
list_id
STRINGNULLABLE
name
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

member_activities#

Data extracted from Mailchimp.

Field NameTypeMode
activity_id
STRINGREQUIRED
member_id
STRINGNULLABLE
list_id
STRINGNULLABLE
email_address
STRINGNULLABLE
activity_type
STRINGNULLABLE
campaign_id
STRINGNULLABLE
title
STRINGNULLABLE
url
STRINGNULLABLE
timestamp
TIMESTAMPNULLABLE
_synced_at
TIMESTAMPREQUIRED

email_activities#

Data extracted from Mailchimp.

Field NameTypeMode
activity_id
STRINGREQUIRED
campaign_id
STRINGNULLABLE
list_id
STRINGNULLABLE
email_id
STRINGNULLABLE
email_address
STRINGNULLABLE
action
STRINGNULLABLE
timestamp
TIMESTAMPNULLABLE
url
STRINGNULLABLE
_synced_at
TIMESTAMPREQUIRED

BigQuery Views

In addition to base tables, Space Monkey auto-provisions analytical views directly into your dataset. These views aggregate and transform the base tables into ready-to-use insights and are recreated automatically on each sync. Access to views is determined by your subscription tier.

Basic Tier Views

Core performance and summary metrics.

v_audience_summary#

High-level aggregate count of members grouped by their status.

Column NameTypeDescription
statusSTRINGSubscriber status (subscribed, unsubscribed, etc.)
member_countINT64Number of members with this status

v_list_overview#

Performance and health overview of all lists/audiences.

Column NameTypeDescription
list_idSTRINGList ID
nameSTRINGList name
member_countINT64Total subscribed members
unsubscribe_countINT64Total unsubscribed members
cleaned_countINT64Total cleaned members
open_rateFLOAT64List average open rate
click_rateFLOAT64List average click rate

v_campaign_performance#

Detailed performance metrics for each campaign with >= 50 sends.

Column NameTypeDescription
campaign_idSTRINGCampaign ID
subject_lineSTRINGSubject line
send_timeTIMESTAMPSend time
emails_sentINT64Number of emails sent
unsubscribedINT64Unsubscribe count
total_bouncesINT64Hard + soft bounces
opens_totalINT64Total opens
unique_opensINT64Unique opens (proxy excluded)
clicks_totalINT64Total clicks
unique_clicksINT64Unique clicks
deliveriesINT64Successful deliveries
bounce_rateFLOAT64Bounce rate
delivery_rateFLOAT64Delivery rate
unsubscribe_rateFLOAT64Unsubscribe rate
open_rateFLOAT64Open rate
click_rateFLOAT64Click rate
ctorFLOAT64Click-to-open rate

v_campaign_averages#

Global averages across all campaigns.

Column NameTypeDescription
total_campaignsINT64Total campaigns sent
avg_emails_sentFLOAT64Average emails sent
avg_open_rateFLOAT64Average open rate
avg_click_rateFLOAT64Average click rate
avg_bounce_rateFLOAT64Average bounce rate
avg_delivery_rateFLOAT64Average delivery rate
avg_ctorFLOAT64Average click-to-open rate
total_emails_sentINT64Total emails sent overall
total_opensINT64Total opens overall
total_clicksINT64Total clicks overall

Advanced Tier Views

Detailed behavioral and segmentation trends.

v_subscriber_growth#

Daily breakdown of new subscriber opt-ins by status.

Column NameTypeDescription
opt_dateDATEDate of last change
statusSTRINGSubscriber status
new_membersINT64Number of new members on this date

v_engagement_distribution#

Distribution of members across engagement ratings.

Column NameTypeDescription
member_ratingINT64Member rating (1-5)
member_countINT64Count of members with this rating
last_synced_atTIMESTAMPLatest sync time for this rating group

v_top_campaigns#

Top performing campaigns highlighting key engagement metrics.

Column NameTypeDescription
campaign_idSTRINGCampaign ID
subject_lineSTRINGSubject line
emails_sentINT64Number of emails sent
send_timeTIMESTAMPSend time
unique_opensINT64Unique opens
unique_clicksINT64Unique clicks
deliveriesINT64Deliveries
open_rateFLOAT64Open rate
click_rateFLOAT64Click rate
ctorFLOAT64Click-to-open rate

v_tag_summary#

Aggregated count of members associated with each tag.

Column NameTypeDescription
tag_idSTRINGTag ID
nameSTRINGTag name
list_idSTRINGList ID
member_countINT64Number of members with this tag
_synced_atTIMESTAMPSync time

v_segment_summary#

Overview of all saved segments.

Column NameTypeDescription
segment_idSTRINGSegment ID
list_idSTRINGList ID
nameSTRINGSegment name
member_countINT64Member count
typeSTRINGSegment type
created_atTIMESTAMPCreation time
updated_atTIMESTAMPUpdate time
optionsSTRINGSegment options JSON
_synced_atTIMESTAMPSync time

Expert Tier Views

In-depth analytics including fatigue analysis, timing optimization, and sentiment.

v_campaign_fatigue#

Quarterly trends in campaign sends and engagement to monitor list fatigue.

Column NameTypeDescription
quarterSTRINGQuarter (YYYY-QN)
campaigns_sentINT64Campaigns sent in quarter
avg_open_rateFLOAT64Average open rate
avg_click_rateFLOAT64Average click rate
avg_ctorFLOAT64Average click-to-open rate

v_subject_line_keywords#

Analysis of keywords used in subject lines and their impact on engagement.

Column NameTypeDescription
keywordSTRINGKeyword from subject line
campaign_countINT64Campaigns using this keyword
avg_open_rateFLOAT64Average open rate
avg_click_rateFLOAT64Average click rate

v_send_time_heatmap#

Aggregated performance grouped by day of week and hour of day.

Column NameTypeDescription
day_of_weekINT64Day of week (1=Sunday, 7=Saturday)
hour_of_dayINT64Hour of day (0-23)
campaign_countINT64Number of campaigns sent
avg_open_rateFLOAT64Average open rate
avg_click_rateFLOAT64Average click rate

v_monthly_performance_trend#

Quarterly performance trend across campaigns.

Column NameTypeDescription
year_quarterSTRINGQuarter (YYYY-QN)
campaign_countINT64Number of campaigns sent
avg_open_rateFLOAT64Average open rate
avg_click_rateFLOAT64Average click rate
avg_ctorFLOAT64Average click-to-open rate

v_audience_health#

Overall audience health metrics including engagement distributions.

Column NameTypeDescription
total_membersINT64Total members
subscribed_countINT64Subscribed members
unsubscribed_countINT64Unsubscribed members
cleaned_countINT64Cleaned members
high_engagement_countINT64Members with rating >= 4
low_engagement_countINT64Members with rating <= 2
avg_member_ratingFLOAT64Average member rating