Welcome!

Hey! Welcome to our API reference for givestar!

The givestar API is based on REST, will return JSON encoded responses and uses standard HTTP status codes.

We'll use CURL script in here for examples, any problems or questions please contact us.

Authentication

We use two header keys for authentication

Header Example

curl --location 'https://api.givestar.io/api/v1/s2s/events/SignUp' \
--header 'X-GS2SAPI-Key: <API KEY HERE>' \
--header 'X-GS2SAPI-OID: <OID HERE>' \
...[rest of payload ommitted]

Both of these will be supplied by your contact at givestar so make sure you have those to hand.

Remember, your API credentials are essentially a username and password and must be treated as such. If you suspect your API key has been revealed anywhere it shouldn't, contact us and we will disable it and generate a new one for you.

Base URL

The base URL for the givestar API is at

https://api.givestar.io

Most integration endpoints will be under

https://api.givestar.io/api/v1/s2s

Errors

We use standard HTTP response codes to indicate success or failure of an API request.

Generally codes in the 2xx range indicate a success.

Codes in the 4xx range indicate an error with the request (missing field / information etc)

5xx range (hopefully none) indicate an error with the givestar API.

Base responses

All responses are returned as JSON formatted data and we use a few different objects to return data depending on the data.

Task Response

List Response

Event Signup

Signing up for an event

[POST] https://api.givestar.io/api/v1/s2s/events/signup

[RETURNS] Task Response

The event signup process will generate a new fundraising page, handle user onboarding and connect the new page to your event.

Events in givestar all have a template fundraising page connected to them. The new fundraising page will use the information from this as default (images / description / currency / target etc) and use any parameters specified in campaignSetup to override these.

Example Payload - Basic Information

{
    "eventId":"[your event id]",     
    "participants": [
        {
            "firstName":"Sam",
            "lastName":"Starling",
            "email":"sam.starling@givestar.io"            
        }
    ]
}

cURL example

curl --location 'https://api.givestar.io/api/v1/s2s/events/SignUp' \
--header 'X-GS2SAPI-Key: [your api key]' \
--header 'X-GS2SAPI-OID: [your owner id]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "eventId":"[your event id]",  
    "participants": [
        {
            "firstName":"Sam",
            "lastName":"Starling",
            "email":"sam.starling@givestar.io"            
        }
    ]
}'

The above example will create a new fundraising page for your event using all the template defaults. In addition we have specified the user information as Sam Starling, the system will check for an existing user or start the onboarding process for a new user.

Specifying campaign options (optional)

A number of campaign options can be set at signup which will override the template defaults. All following are optional.

Property Name Data Type Description Example Value
targetAmount Decimal Specify target amount for fundraising page 123.45
currencyId String Specify currency id for page (see Currencies) 3fa85f64-5717-4562-b3fc-2c963f66afa6
campaignName String Title for fundraising page My cool page title
campaignDescription String Description for fundraising page. (basic HTML allowed) Hey! Thanks for visiting my page.

Here is an example where the target amount, campaign name and description have been set.

Example Payload

{
    "eventId":"[your event id]", 
    "campaignSetup":
        {
            "targetAmount": 350,
            "campaignName":"This is my page!",
            "campaignDescription":"Hey, thanks for checking out my page."
        }, 
    "participants": [
        {
            "firstName":"Sam",
            "lastName":"Starling",
            "email":"sam.starling@givestar.io"            
        }
    ]
}

Participants (required)

The participants property specifies information about the supporter. This data is used to either assign the new fund raising page to an existing user or to start the claim page routines within givestar. firstName, lastName and email are all required fields. Optionally, an address property can be specified which allows a phone number and country code to be specified for SMS alerts and marketing.

(for more information on the SMS functionality, please contact us)

 "participants": [
    {
      "firstName": "Frank",
      "lastName": "Smith",         
      "email": "frank.smith@givestar.io",
      "address": {        
        "phoneNumber": "075899899887",
        "countryCode": "gb"
      }
    }
  ]
Property Name Data Type Description Example Required
firstName string First name of the participant Frank yes
lastName string Last name of the participant Smith yes
email string Email address of the particpant frank.smith@givestar.io yes
address address object Optional address component (see below) no

Address Component

The address property can be specified if a mobile phone number (and country code) is required to be sent as part of the payload.
The most common scenario is when the supporter should be entered into SMS workflows from givestar.

Property Name Data Type Description Example Required
phoneNumber string Phone number of the supporter 075899899887 / 00447589989987 yes
countryCode string If the number is not specified in international format, i.e. does not begin with 0044 then a country code is required. By default the system will assume gb if this is not specified. gb yes

Specifying charities (optional)

Most events will use the event template charities as the default. These can be changed by the user once they have claimed their page through the onboarding process which happens after an event signup.

However, if you want to specify the charity(s) to be used during the event signup, then the selectedCharities property can be set. When more than one charity is specified the splits between the charities will be set automatically.

For example

Charity Count Split
1 100%
2 50%
3 33.33%
4 25%

Up to 4 charities can be specified.

In the case of an uneven split (i.e. 33.33% leaves 0.01% floating), a random shuffle is used on each donation to determine the charity which will receive the additional 0.01% of the donation.

"selectedCharities": [
    {
      "charityId": "fede3b44-d90d-4b2d-8851-fb0d372c1ec8"
    },
    {
      "charityId": "88f2bf4e-d7c9-4c38-89c2-34792567e49c"
    } 
  ]

The charity ids are the givestar unique id for the charity, to find a charity id we can either supply this to you (if it is a pre-determined list that you wish to provide to your users) or you can use the charity search API call.

{
    "eventId":"[your event id]", 
    "campaignSetup":
        {
            "targetAmount": 1000,
            "campaignName":"Running the hills for charity",
            "campaignDescription":"Hey, I am splitting my donations between these two great charities!"
        }, 
    "participants": [
        {
            "firstName":"Sam",
            "lastName":"Starling",
            "email":"sam.starling@givestar.io"            
        }
    ],
    "selectedCharities": [
        {
          "charityId": "fede3b44-d90d-4b2d-8851-fb0d372c1ec8"
        },
        {
          "charityId": "88f2bf4e-d7c9-4c38-89c2-34792567e49c"
        }
  ]
}

Event SignUp Response

The following is an example successful response following an event signup.

{
    "success": true,
    "message": "",
    "data": {
        "eventName": "Event Test",
        "supporterName": "Frank",
        "campaignQuickCode": "event-test-91623",
        "campaignLink": "https://api.givestar.io/gs/event-test-91623",
        "campaignName": "Event Test Page",
        "campaignCreated": true,
        "campaignId": "2045f1......6b56f7c",
        "supporterId": "c2af094......2d7855",
        "newUserCreated": true,
        "teamName": "",
        "newTeam": false,
        "teamInviteCode": "",
        "teamId": "",
        "teamQuickCode": "",
        "paymentReference": "",
        "teamSuccess": false,
        "teamResponseMessage": "No team options were specified.",
        "campaignResponseMessage": "",
        "pageActivationUrl": "https://givestar.io/ppa/gs/event-test-91623?userId=e9b416......c7b03e69f9a&activationCode=2193f52......c2f4e89ccb"
    },
    "responseCode": ""
}
Property Name Data Type Description
success boolean If the request was successful or not
message string Any message related to the response
data object The signup response data
data.[eventName] string Name of the event being signed up to
data.[supporterName] string First name of the supporter as specified in request
data.[campaignQuickCode] string Short code for the supporters fundraising page
data.[campaignLink] string Shareable Url for the supporters fundraising page
data.[campaignName] string Title of the created fundraising page
data.[campaignCreated] datetime Creation date of the fundraising page
data.[campaignId] uuid Internal id of the fundraising page
data.[supporterId] uuid Internal id of the supporter account
data.[newUserCreated] boolean True if a new user was created during signup, false if an existing user was found
data.[teamName] string Team name if request includes team join options
data.[newTeam] boolean True if a new team was created as part of the request
data.[teamInviteCode] string Shareable team invite code, populated when a new team is created
data.[teamId] uuid Internal team id
data.[teamQuickCode] string Short code for the team
data.[paymentReference] string Any payment reference relating to the signup and/or purchases
data.[teamSuccess] boolean If a team request was sent, true if the team join was successful
data.[teamResponseMessage] string Any messages relating to the team creation/join request
data.[campaignResponseMessage] string Any messages relating to the fundraising page creation
data.[pageActivationUrl] string Url to allow the user to "claim" their page on the givestar platform and activate their account

Creating Events

[POST] https://api.givestar.io/api/v1/s2s/events

Property Name Data Type Description Example Required
eventType integer Specifies the type of event to create, this is normally set to 0 for regular signup events. 0 yes
alternativeId string Optional owner event id which can be used in place of the internal givestar id for event signups. ABC1234 no
eventCode1 string Optional event code field for your reporting purposes. code_1 no
eventCode2 string Secondary optional event code field for your reporting purposes. code_2 no
name string The name of your event. My Event yes
description string The description of your event as shown on the event page. This section allows basic HTML commands. This is our event yes
targetAmount decimal Optional target amount for your event. 100000 no
currencyId uuid The currency id to be used for the event. 9d6494c0-e364-43f0-b76c-52251df71133 yes
eventStart datetime Optional event start field for the event in yyyy-MM-dd format. 2027-01-01 no
eventEnd datetime Optional event end field for the event in yyyy-MM-dd format. 2027-06-01 no
category integer The category id for the event (see event categories) 3 yes
campaignTemplate campaignTemplateObject The campaign or fundraising page template to be used. (See below for example) yes
locationAddress addressObject Optional event location address. (See below for example) no
eventOptions eventOptionsObject Optional settings for the event. (See below for example) no

Fundraising Page Template Object

The fundraising page template (also known as the campaign template) defines the default setup for the fundraising pages created when signing up for an event.

This settings in this template will be used if no overrides are received during the event signup process to build the users page.

Property Name Data Type Description Example Required Default
name string Fundraising page title My Page yes
description string Description of the fundraising page. This section allows basic HTML to be used. Thanks for visting my page! yes
currencyId uuid The currency id for the fundraising page. This should be set to the same as the main event. 9d6494c0-e364-43f0-b76c-52251df71133 yes
defaultTarget decimal The default target for the fundraising page. 10000 no 0
noCharity boolean If set to true the page will prompt for charities to be specified when the user claims the page. true no false
charities campaignCharities[] An optional list of campaign charities to be set as default for the fundraising page. (See below for example). If the noCharity option is set to true this property will be ignored. no

Campaign Charities

Property Name Data Type Description Example Required Default
charityId uuid The id of the charity to be added. yes
autoSplit boolean If set to true the platform will auto split the donations equally between the charities. true no true
split decimal If autoSplit is set to false this value will be used to denote the percentage of the donation received against the charity. If the total of splits does not equal 100, the split will be made automatically. 50 no

Event Location Address

This object can be used to specify a location for your event.

Property Name Data Type Description Example Required Default
addressLine1 string Address Line 1 Fair Oak Manor no
addressLine2 string Address Line 2 no
addressLine3 string Address Line 3 no
addressLine4 string Address Line 4 no
locality string Locality Hampshire no
region string Region South no
postZipCode string Post/Zip Code SO99 ABC no
country string Country UK Scotland no
phoneNumber string Phone Number +44 011 1234566 no
countryCode string 2 Digit country code UK no

Event Options

This object allows you to set specific options for your event.

Property Name Data Type Description Example Required Default
lockFundRaiserPage boolean Whether the user can change the banner / title or description of the fundraising page. false no false
frpAllowCharitySelect boolean Whether the user can select their own charities. If set to true, default charities must be specified on the main event template. true no true
hideFundRaiserCount boolean Show or hide the number of fundraisers signed up to the event on the main event page. false no false
hideTotaliser boolean Show or hide the totaliser on the main event page. false no false
hideDonationCount boolean Show or hide the donation count on the main event page. false no false
hideLeaderBoard boolean Show or hide the leader board on the main event page. false no false
maxChildCampaigns integer The maximum number of pages that can be created under the event. A value of 0 means no limit. 400 no 0
enableTeams boolean Whether teams are enabled for the event. true no true
hideSignupButton boolean Show or hide the signup button on the main event page. false no false
frpSupporterLimit integer Sets how many pages can be created by an individual user/supporter account. A value of 0 means no limit. 0 no 0
charityInclude uuid[] A list of charities to be included for charity selection on the fundraising pages. [] no []
charityExclude uuid[] A list of charities to be excluded for charity selection on the fundraising pages. [] no []

Event Categories

Events on the platform are assigned a category, below is the list of currently active categories that can be used in the category property.

Id Name
0 Other
1 Run
2 Sport
3 Sailing
4 Cycle
5 Walk
6 Coffee Morning
7 Hike
8 Marathon
9 Sleep Out
10 Half Marathon
11 Obstacle Course
12 Swim
13 Triathlon
14 Rowing
15 Sky Dive

Example Payload

[POST] https://api.givestar.io/api/v1/s2s/events

{
    "eventType":0,
    "alternativeId":"596839",
    "eventCode1":"ev code 1",
    "eventCode2":"ev code 2",
    "name": "Sailing Event 7",
    "description":"This is my sailing event",
    "targetAmount":10000,
    "currencyId":"9d6494c0-e364-43f0-b76c-52251df71133",
    "eventStart":"2026-01-01",
    "eventEnd":"2026-01-02",
    "category":3,
    "campaignTemplate":{
        "name":"Sailing Event 7 TE",
        "description":"Thanks for looking at my page, I am part of the sailing event",
        "currencyId":"9d6494c0-e364-43f0-b76c-52251df71133",
        "defaultTarget":500        
    },
    "locationAddress": {
        "addressLine1":"Henley On Thames",
        "postZipCode":"HA1 5TR"
    }
}

Example Response

{
    "eventId": "e8ecaba7-7444-4901-99bd-521e5cd9d311",
    "eventName": "Sailing Event 7",
    "eventQuickCode": "sailing-event-7",
    "campaignCreated": true,
    "campaignId": "565d7665-dac2-4d3a-ae7a-f6e70b331729",
    "campaignName": "Sailing Event 7 TE",
    "campaignQuickCode": "sailing-event-7-te",
    "success": true
}

On a successful response, the eventId can be used to set the media for the event and for the template fundraising page. Please refer to the Media section in this document.

Updating Events

[PATCH] https://api.givestar.io/api/v1/s2s/events

The update endpoint allows you to change several different properties for both the event and the fundraising page template.

Property Name Data Type Description Example Required
eventId uuid The id of the event to update. yes
eventAlternativeId string Optional owner event id which can be used in place of the internal givestar id for event signups. ABC1234 no
eventCode1 string Optional event code field for your reporting purposes. code_1 no
eventCode2 string Secondary optional event code field for your reporting purposes. code_2 no
eventTitle string The name of your event. My Event no
eventDescription string The description of your event as shown on the event page. This section allows basic HTML commands. This is our event no
eventStatus integer Sets the status of the event. 0 = Draft, 1 = Active, 2 = Completed no
eventTargetAmount decimal Optional target amount for your event. 100000 no
eventStart datetime Optional event start field for the event in yyyy-MM-dd format. 2027-01-01 no
eventEnd datetime Optional event end field for the event in yyyy-MM-dd format. 2027-06-01 no
eventCategory integer The category id for the event (see event categories) 3 no
eventLocation addressObject Optional event location address. (See above for example) no
eventOptions eventOptionsObject Optional settings for the event. (See above for example) no
templateTitle string The default title for fundraising pages created for this event. no
templateDescription string The default description for fundraising pages created for this event. no
templateTargetAmount decimal The default donation target for fundraising pages created for this event. no
eventQuickCode string The quick code or URL slug for the event, see notes below. my-event-page no

If any property is omitted from the payload, its current value will not be changed.

In the case of the event start and end dates, if these values are omitted, then the system will assume a null value for these fields.

In the case of eventPrivate if this property is not specified, the system will assume a value of false.

Event Quick Code: The event quick code is used as a URL short code slug, i.e. https://givestar.io/ev/my-event where my-event is the quick code.

If this is specified on the event update payload then the requested value will be checked against other events to ensure uniqueness, if the specified quick code is already in use an error will be returned with a message to this effect. Quick codes will automatically be trimmed, converted to lower case and have any spaces replaced with -.

Example Payload

{
    "eventId":"xxxx905f-2d3c-xxxx-xxxx-df66b25cc7a0",
    "eventTitle":"Our event!!",
    "eventDescription":"The very cool event",
    "eventTargetAmount":700,
    "eventCategory":1, 
    "eventStart":"2025-09-01",
    "eventEnd":"2025-09-02",
    "eventCode1":"a new event code",
    "eventCode2":"2nd event code",
    "eventQuickCode":"this event 2",
    "eventAlternativeId":"AN ALT ID",
   "templateDescription":"This is a new template description.",
   "templateTargetAmount":1010,
   "templateTitle":"The new event",
   "eventLocation": {
        "addressLine1":"Event Address 1",
        "addressLine2":"Event Address 2",
        "postZipCode":"SE11 1QR"
   }
}

Example Response

{
    "success": true,
    "message": "",
    "data": null,
    "responseCode": ""
}

Media

[POST] https://api.givestar.io/api/v1/s2s/media

The media endpoint can be used to set banner images for both the event and template campaign records.

After creating an event record, the event should have a banner set, optionally a banner can be set for the template campaign as well. If the template campaign does not have a default banner image, the main event banner image will be used instead.

Images are uploaded as form-data with two URL parameters to specify the media type and the related entity id (either the campaign or event id in this case.)

https://api.givestar.io/api/v1/s2s/media?mediaType=12&entityId=e8ecaba7-7444-4901-99bd-521e5cd9d311

Example cURL Request

This request uploads a new event banner image (media type 12) for the event id e8ecaba7-7444-4901-99bd-521e5cd9d311.

curl --location 'https://api.givestar.io/api/v1/s2s/media?mediaType=12&entityId=e8ecaba7-7444-4901-99bd-521e5cd9d311' \
--header 'X-GS2SAPI-Key: [your api key]' \
--header 'X-GS2SAPI-OID: [your owner id]' \
--form '=@"/C:/Users/givestar/Downloads/my-event-banner.jpg"'

This request uploads a new fundraising page banner image (media type 1) for the page id 565d7665-dac2-4d3a-ae7a-f6e70b331729.

curl --location 'https://api.givestar.io/api/v1/s2s/media?mediaType=1&entityId=565d7665-dac2-4d3a-ae7a-f6e70b331729' \
--header 'X-GS2SAPI-Key: [your api key]' \
--header 'X-GS2SAPI-OID: [your owner id]' \
--form '=@"/C:/Users/givestar/Downloads/my-page-banner.jpg"'

Reporting Services

Overview

We offer a number of standard reports which are accessible from the S2S endpoint /api/v1/s2s/reports

We have tried to make the reporting system at givestar as flexible as possible to allow it to cater for different integration requirements.

Reports here can be filtered, paged and sorted as required as well as supplying data in a structured JSON format.

If custom reports are developed for you, they are available by the same process as below.

Available reports

Report Id Name Context Description
fd1131be-0da5-4409-b2b7-a341c409a1fc Event List Report s2s Base report for events.
91c62a22-38e8-4492-976e-e97e3f2b831e Event Fundraising Page Report s2s A report on all fundraising pages, including totals for events.
60150d0a-f6fc-40c8-914a-833f70437ddb Event Charity List (GBP Totals) s2s A report on all beneficiary charities for events

Report Components

There are 3 main components to the reports:

Report Definition

/api/v1/sysops/reports/{reportId} [GET]

Returns the definition of a report, it will return all the available fields, types along with any required parameters for the report.

It is useful to call this if you need to determine what fields and parameters are available and what they mean as well as determining which fields can be sorted and filtered.

Example Response

{
    "id": "da3e5ad0-629e-4c45-b88b-935cbb7da90b",
    "name": "Donation Report",
    "description": "Charity donation report",
    "groupName": "Donations",    
    "requiredParameters": [
        {
            "parameterName": "startDate",
            "fieldType": "datetime",
            "value1": "",
            "value2": "",
            "internalSet": false
        },
        {
            "parameterName": "endDate",
            "fieldType": "datetime",
            "value1": "",
            "value2": "",
            "internalSet": false
        }
    ],
    "fieldsAvailable": [
        {
            "fieldName": "statement_internal_id",
            "internalFieldName": "",
            "fieldType": "uuid",
            "headerName": "(INT) Statement Id",
            "description": "Internal statement id.",
            "displayIndex": 0,
            "allowSort": true,
            "allowFilter": true,
            "baseDisplay": false,
            "permanent": true,
            "validFilters": [
                "equals",
                "not_equal",
                "null",
                "not_null"
            ]
        }....
        [Rest of payload omitted]
Property Description
id Unique id of the report requested
name Name of the report
description A description of the report
groupName Grouping name for the report, i.e. Donations or Events etc
requiredParameters Array of parameters required for the report (see report parameters)
fieldsAvailable Array of the fields available for the report (see report fields)

Report Field Object

The report field object defines a report field. Its basic job is to provide a human friendly representation of the underlying data field and to allow the UI to determine if it should show for filtering and ordering.

Property Name Data Type Description
fieldName String The unique internal field name, this should be used when referencing the field
fieldType field_type The type of field data (see field types)
headerName String The default "friendly" name for the field
description String A user friendly description of the field
displayIndex Integer The default display index (position) of the field
allowSort Boolean Whether the field allows sorting or not
allowFilter Boolean Whether the field allows filtering or not
baseDisplay Boolean If the field is included when no fields are defined by the report request
permanent Boolean If the field is always sent regardless of the report request
validFilters String[] If the field is filterable, then a list of the filters valid for the data-type

Field Types

Below is a list of all the current valid field types

Field Type Id Description
datetime Date / Time in yyyy-MM-dd HH:mm format
uuid UUID / GUID
boolean Boolean as true or false
text Any text values (inc JSON data as string)
number_decimal Decimal values
number_int Integer values

Running a report

/api/v1/s2s/reports/run [POST]

To run a report a reportRequest payload must be sent.

The report request specifies the report required, paging information, parameters (if required), filtering, sorting and any specific fields required.

If a report request doesn't specify any fields, then the default set of fields will be returned.

Example Report Request

{
    "reportId": "ab45f-629e-4c45-aaaa-935cbb7da90b",
    "pageSize": 1,
    "pageNumber": 50,
    "exportReport": false,
    "fields": [            
        {
            "fieldName": "donation_date",
            "displayIndex": 0,
            "headerName": "Date of donation"
        },
        {
            "fieldName": "campaign_name",
            "displayIndex": 1,
            "headerName": "Campaign Name"
        },
        {
            "fieldName": "donation_amount",
            "displayIndex": 2,
            "headerName": "Donation Amount"
        },
        {
            "fieldName": "event_name",
            "displayIndex": 3,
            "headerName": "Event Name"
        },
        {
            "fieldName": "donator_email",
            "displayIndex": 4,
            "headerName": "Donator Email"
        }
    ],
    "order": [      
        {
            "fieldName": "donation_date",
            "direction": "desc"
        },       
        {
            "fieldName": "campaign_name",
            "direction": "asc"
        },
        {
            "fieldName": "donation_amount",
            "direction": "desc"
        }
    ],
    "filterType": "all",
    "filters": [
        {
            "fieldName": "donation_amount",
            "filterOperation": "greater_than_or_equal",
            "filterValue": "10"
        }
    ],
    "parameters": [       
        {
            "parameterName": "startDate",            
            "value1": "2024-01-01 00:00"
        },
        {
            "parameterName": "endDate",            
            "value1": "2025-03-20 00:00"
        }
    ]
}

Report Request Properties

Property Name Data Type Description
reportId UUID The id of the report requested
pageSize int Number of records per page to return
pageNumber int Page number required
exportReport boolean If true, then any paging information is overidden and a full set of data is returned as JSON data
fields reportRequestField[] A list of the fields requested, if no fields are specified then a base set of information is returned.
order reportRequestOrderField[] An array of fields on which to order the data
filterType string all or any. If "all" then all filters will try and match, if any, then the data can be matched to any of the filters.
parameters reportRequestParameter[] An array of the parameters required for the report.

Report Request Field

The report request field object is used to specify which fields (and override their header names if needed) and the order in which they should appear.

Property Name Data Type Description
fieldName string The field name id for the field required
displayIndex int The order in which the field should be rendered. If conflicts then the order is by the display index and then by the header name.
headerName string Allows the user to define their own header name if required. If omitted, then the default header name for the field is used.

Order Fields

The report order field can be used to define multiple ordering columns for the report output.

Property Name Data Type Description
fieldName string The field name id for the field required
direction string One of asc for ascending sort or desc for descending sort

Filter Fields

Reports can be filtered by specifying the reportFilterField property on the reportRequest object.

Depending on the field type, only certain filter operations are valid.

In addition to providing filter fields, you must also specify the filterType. By default this is set to all which means all fields must match.

If any is specified, then any fields may match.

Property Name Data Type Description
fieldName string The field name id for filtering. This does not have to be included in the display fields.
filterOperation string The operation to apply. (See filter operations table)
filterValue string The filter value to check for. All values are try-parsed against their respective data-types backend. If an invalid parse, the filter is ignored.

Filter Operations Table

Filter Operation Description
equals Value is equal to
greater_than Value is greater than
greater_than_or_equal Value is greater than or equal to
not_equal Value is not equal to
less_than Value is less than
less_than_or_equal Value is less than or equal to
null Value is null
not_null Value is not null
contains (text only - case insensitive) Text contains value
not_contains (text only - case insensitive) Text does not contain value

Parameter Fields

Some reports may require parameters as specified when you get the base report definition.

These are supplied to using the following data type.

If an incorrect number pf parameters is received, or not all parameters could be converted to their respective data-types, then an error will be returned.

Property Name Data Type Description
parameterName string From the report definition
value1 string String value to be parsed as parameter

Relative Date Parameters (new)

Many reports are based from a date range using two parameters startDate and endDate. For convenience a relativeDateParamValue can be passed as the value for the startDate which will instruct the report service to automatically determine a startDate and endDate value from the point the report is being run.

For example, if now-12h is specified as the startDate parameter value and the report is being run at 6pm on the 1st March 2026, the resulting startDate and endDate values will be:

startDate = 2026-03-01 06:00 endDate = 2026-03-01 18:00

Because these parameter values can be saved in a custom report, this allows you to create a report that, when run, automatically selects the correct date range rather than having to set it manually each time.

Value Description Notes
now-5m Last 5 minutes
now-15m Lat 15 minutes
now-30m Last 30 minutes
now-1h Last hour
now-3h Last 3 hours
now-6h Last 6 hours
now-12h Last 12 hours
now-24h Last 24 hours
now-1d Last day
now-2d Last 2 days
now-7d Last 7 days
now-30d Last 30 days
now-90d Last 90 days
now-6m Last 6 months
now-1y Last year
now-2y Last 2 years
now-5y Last 5 years
now-1d/d Yesterday Sets start time to 00:00:00 and end time to 23:59:59
now-2d/d Day before yesterday Sets start time to 00:00:00 and end time to 23:59:59
now-7d/d This day last week Sets start time to 00:00:00 and end time to 23:59:59
now-1w/w In the last week Sets start time to 00:00:00 and end time to 23:59:59
now-1M/M Last month Sets start time to 00:00:00 and end time to 23:59:59
now-1y/y Previous year Jan-Dec Sets start time to 00:00:00 and end time to 23:59:59
now/d Today Sets start time to 00:00:00 and end time to 23:59:59
now/M This month Sets start time to 00:00:00 and end time to 23:59:59
now/y This year Jan-Dec Sets start time to 00:00:00 and end time to 23:59:59

If an invalid relative date parameter value is sent, the response will be one of an error.

Example request

Report in last 3 hours

{
    "reportId": "da3e5ad0-629e-4c45-b88b-935cbb7da90b",
    "pageSize": 25,
    "pageNumber": 1,
    "exportReport": false,
    "parameters":[
        {
            "parameterName":"startDate",
            "value1":"now-3h",
            "fieldType":"date_time"
        },
        {
            "parameterName":"endDate",
            "value1":"now",
            "fieldType":"date_time"
        }
    ]  
}

Note: When specifying a relative date parameter value for startDate, endDate value is ignored but must be supplied with any value.

Report Request Response

The report request response is sent back either on a successful report run or as part of a 400 response.

Example response (success)

{
    "reportId": "da3e5ad0-629e-4c45-b88b-935cbb7da90b",
    "reportName": "Donation Report",
    "success": true,
    "errorMessage": "",
    "totalRecords": 1058,
    "fieldCount": 7,
    "headerCount": 7,
    "exportMode": false,
    "data": [
        {
            "donation_source_name": "Mobile App",
            "campaign_name": "Santa Barbara Big Surf hshs",
            "donation_date": "2025-03-30T07:36:33.820059",
            "donation_type_name": "Online",
            "donation_id": "79108610-9d68-4f9b-9a76-57f6ff6de534",
            "donation_amount": 10,
            "payout_net": 9.56
        }
        ....[data truncated]
    ],
    "headers": [
        {
            "fieldName": "donation_source_name",
            "headerName": "Donation Source"
        },
        {
            "fieldName": "campaign_name",
            "headerName": "Campaign Name"
        },
        {
            "fieldName": "donation_date",
            "headerName": "Date of donation"
        },
        {
            "fieldName": "donation_type_name",
            "headerName": "The wonderful type of donation"
        },
        {
            "fieldName": "donation_id",
            "headerName": "My donation id"
        },
        {
            "fieldName": "donation_amount",
            "headerName": "Donation Amount"
        },
        {
            "fieldName": "payout_net",
            "headerName": "Payout NET"
        }        
    ],
    "summaryData": [
        {
            "description": "Total record count",
            "fieldType": "number_decimal",
            "value": 1058
        }
    ]
}
Property Name Data Type Description
reportId uuid Id of base report requested
reportName string Name of base report requested
success boolean True or False depending on status
errorMessage string If success == false, a message explaining the error will be shown here
totalRecords int Total number of records in dataset irrespective of paging
fieldCount int Total number of fields rendered
headerCount int Total number of header fields rendered. This should match the field count.
exportMode boolean True if export mode was requested (full data set, no paging), false if basic paging method
data object[] Array of objects. The property names for each object will match a header entry below
headers fieldHeader[] Array of field headers with fieldNames matching the property names in the data array
summaryData summaryData[] Array of summary fields. See notes below

Summary Data

Some reports will return summary data as part of the payload. These are unique depending on the type of report being run.

Donation Ticker & Totaliser Feeds

We offer two endpoints to enable you to display a real-time donation ticker and totaliser feed on your own website / application.

These are updated every time a donation is "settled" on the givestar platform and can be used to display live totals to your audience. Both endpoints can be used with either a campaignId, eventId or teamId in place of the {entityId} below.

Donation Ticker

The ticker displays a list of all donations settled on the system. It maintains a list of 150 donations for a maximum of 48 hours (after no activity).

https://api.givestar.io/api/v1/FRP/{entityId}/DonationTicker

Example Response

[
  {
    "timeStamp": "2025-05-16T20:04:03.5485622Z",
    "campaignId": "e373627b-0000-4608-9742-948d37fc0627",
    "eventId": "2c9d8328-0000-4145-9206-66281d40f0cd",
    "teamId": "00000000-0000-0000-0000-000000000000",
    "donationAmount": 20,
    "giftAid": false,
    "giftAidValue": 0,
    "donationCurrencyCode": "GBP",
    "displayName": "Nick",
    "donatorFirstName": "Nicholas",
    "donatorLastName": "Smith",
    "donatorDisplayName": "Nick",
    "donatorMessage": "Good Luck!",
    "donationCurrencySymbol": "£",
    "formattedDonationAmount": "£20.00",
    "totalValueWithGiftAid": 20,   
    "campaignOwnerId": "3d6bea74-26e4-4a05-9a35-d9e291183bee",
    "campaignQuickCode": "helens-fundraising-page"    
   }]....[DATA TRUNCATED]

Donation Totaliser

The totaliser contains the total amount raised for the entityId specified.

https://api.givestar.io/api/v1/FRP/{entityId}/DonationTotal

Example Response

{
  "recordId": "e4faa8f0-0000-48d4-9761-da086a0d3960",
  "recordName": "My Run!",
  "currencyCode": "GBP",
  "currencySymbol": "£",
  "amount": 1200.47,
  "giftAidAmount": 294.25,
  "formattedAmount": "£1200.47"
}