Gorilla Dash

Help Centre

Guides for every part of Gorilla Dash

Step-by-step how-to guides written by the team that builds the product. Read them here, or download any guide as a PDF.

API

Email campaign results on the API

Download PDF

GET /email-campaigns returns the email campaigns you have sent, with how many people each one reached, opened and clicked, so you can build your own reporting without taking screenshots.

Last updated October 14, 2026


GET https://api.gorilladash.com/api/v1/email-campaigns lists the email campaigns your organisation or tribe has sent, newest first, with the same results the campaign's analytics panel shows: recipients, delivered, opened, clicked, unsubscribed, failed and bounced.

Only campaigns that have finished sending are listed. Drafts, scheduled campaigns and campaigns a tribe rejected never appear, and a Tribe Campaign's results include only the tribes that sent their copy.

Giving a key access

The endpoints are listed under Marketing > Email Campaigns in the key's Permissions. Keys with Full Access, and keys made before endpoint permissions existed, can already read them. A key limited to chosen endpoints needs Email Campaigns ticked, so create a new key with it ticked if yours does not have it.

Parameters

ParameterNotes
pagePage number, from 1.
results_per_pageUp to 25. Defaults to 25.
sent_afterCampaigns sent at or after this moment.
sent_beforeCampaigns sent strictly before this moment. Must be later than sent_after.
tribe_idWhat one tribe sent. Organisation keys only; see below.

Both dates take a full timestamp with its time zone, such as 2026-09-01T00:00:00+10:00. URL-encode it, because a + left as it is arrives as a space: send +10:00 as %2B10:00. To report on one month, set sent_after to the first moment of the month and sent_before to the first moment of the next one. A campaign sent exactly at midnight then belongs to one month only.

There is no updated_after filter, because a campaign's counts change every time someone opens or clicks it. To keep a report current, read its sent_after and sent_before window again.

Organisation and tribe campaigns

A tribe is one location, branch or business unit inside your organisation. Campaigns reach people in three ways, and type tells you which:

typeWhat it is
OrganisationSent by the organisation to its own mailing list.
Tribe CampaignWritten by the organisation and pushed to several tribes, each of which sends its own copy. Its results are the total across every tribe.
TribeSent by one tribe. Either the tribe's own campaign, or its copy of a Tribe Campaign, in which case parent_campaign_id names the Tribe Campaign.
  • An organisation key without tribe_id lists the Organisation campaigns, the Tribe Campaigns (each once, with the total) and every tribe's own campaigns.
  • An organisation key with tribe_id lists everything that tribe sent, including its copies of Tribe Campaigns, each with that tribe's own results.
  • A tribe key always lists its own tribe. Asking it for a different tribe_id is refused with a 403.
DO NOT ADD THE TWO VIEWS TOGETHER
A Tribe Campaign's total already includes every tribe's copy. If you add the organisation list to the per-tribe lists, those sends are counted twice. Use the organisation list for network totals and tribe_id for one tribe's figures.

What comes back

FieldNotes
idThe campaign id.
nameThe campaign's name in Gorilla Dash.
subjectThe subject line of the email it sent.
typeOrganisation, Tribe Campaign or Tribe, as above.
statusAlways Finished here.
sent_atWhen it was sent, in UTC. For a Tribe Campaign, this is when the organisation scheduled it, or for an older one saved without a date, when its first tribe sent it. Each tribe's own send time is in tribe_campaigns.
parent_campaign_idFor a tribe's copy of a Tribe Campaign, the Tribe Campaign's id. Otherwise null.
tribe_id, tribeThe tribe that sent it. Null for Organisation and Tribe Campaign campaigns.
audienceWho it was sent to: tribes, mailing_lists, person_categories and tribe_types, each a list of id and name.
preview_image_urlA picture of the email, for showing the design in a report. Null if none was captured.
countsThe results, described below.
created_at, updated_atWhen the campaign record was created and last edited.

What each count means

CountMeaning
recipientsPeople the campaign was addressed to.
deliveredEmails the receiving mail server accepted.
openedPeople who opened it, each counted once however often they opened it.
clickedPeople who clicked a link, each counted once. A click on the unsubscribe link is not counted here.
unsubscribedUnsubscribes from this campaign.
failedEmails that could not be delivered.
bouncedEmails returned by the receiving mail server.

The campaign's analytics panel shows delivered, failed and bounced as a percentage of recipients, opened as a percentage of delivered, and clicked and unsubscribed as a percentage of both opened and delivered. Work your percentages out the same way and they will read like the ones your team sees.

RECENT SENDS KEEP CHANGING
The counts are read live, so a campaign sent this week keeps gaining opens and clicks for days afterwards. Read last month again when you build its report rather than reusing figures you collected on the day it was sent.

Getting one campaign

GET https://api.gorilladash.com/api/v1/email-campaigns/{id} returns one campaign with the same fields as the list. For a Tribe Campaign it also returns tribe_campaigns, one entry per tribe that has sent its copy, each with its own id, tribe, sent_at and counts. A campaign that has not finished sending, or that belongs to another organisation or tribe, returns 404.

This endpoint is not cached, because its numbers change as opens and clicks arrive.

Next · APIYour tribes: the tribes endpoint