API

Introduction

The Goodera API is designed to seamlessly integrate with your applications, enabling you to leverage our vast database of opportunities and events. Whether you are looking to fetch detailed information about specific opportunities, list all available opportunities, manage event details, or handle registrations, our RESTful API provides a robust and intuitive way to connect with the Goodera platform. With the Goodera API, you have access to:

  • Opportunities: Search and retrieve detailed information about volunteer opportunities and initiatives.
  • Events: Manage event details, from creation to querying specific events.
  • Registrations: Facilitate user registrations for events with ease.

Our API is structured around REST, which is easy to use and compatible with a wide variety of programming languages and tools. Responses are returned in JSON format, and standard HTTP response codes are used to indicate API errors.

Opportunities

Base API URL:

Get opportunity

API URL:

Fetches one opportunity from the identifier sent in path params.

Field
Type
Description
Required
Example
eventId
string
The identifier of the opportunity which has to retrieved
true
“65f96d1e1d38620012d38261”
curl --location --request GET 'https://developer-api.goodera.com/opportunities/610cc05de85e70001106f7d9' \
--header 'x-api-key: <YOUR-API-KEY>'
200
Request Successful
401
Unauthorized
403
Unauthenticated
500
Internal Server Error
RESPONSE
{
    "rows": [
        {
            "id": "610cc05de85e70001106f7d9",
            "name": "Test Before Handover - 8th Aug",
            "eventLabel": "TEAM_BASED",
            "description": "Event description - This is a test event created on 8th August 2021",
            "richTextDescription": "<p>Event description - This is a test event created on 8th August 2021</p>",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "Why volunteer - This is a test event created on 8th August 2021",
            "preRequisites": "Prerequisites - This is a test event created on 8th August 2021",
            "minVolunteers": 50,
            "maxVolunteers": 100,
            "duration": [
                60
            ],
            "countries": [
                "AF",
                "IN"
            ],
            "languages": [],
            "beneficiaries": [
                "ADUL"
            ],
            "causes": [
                "SJH",
                "ANIM",
                "CAPB",
                "CHY",
                "COM"
            ],
            "type": "DIGITAL_CARDS",
            "deck": "https://www.google.com/maps",
            "isPaid": false
        },
        {
            "id": "611e0de8e771a4001191e0a6",
            "name": "Test Before Handover - 19th August",
            "eventLabel": "TEAM_BASED",
            "description": "This is a test event created on 19th August 2021 ( Thursday @1.30 PM ).",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60f70bbe26f5c40011f2d011",
            "expectedImpact": "",
            "preRequisites": "This is a test event created on 19th August 2021 ( Thursday @1.30 PM ).\nThis event should reflect on Champions page",
            "minVolunteers": 100,
            "maxVolunteers": 1000,
            "duration": 120,
            "countries": [
                "AI",
                "AG"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "PM_LETTER",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "611e309bd4de0d00113bfcf1",
            "name": "create ",
            "eventLabel": "TEAM_BASED",
            "description": "qazwsx",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60d890e9337f310011e71c68",
            "expectedImpact": "wedf",
            "preRequisites": "wsxcv",
            "minVolunteers": 7,
            "maxVolunteers": 500,
            "duration": [
                60
            ],
            "countries": [
                "AD",
                "US"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL"
            ],
            "causes": [
                "SJH"
            ],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "613ed2a46256690011a9949f",
            "name": "Test Before Handover - 13th September",
            "eventLabel": "TEAM_BASED",
            "description": "Test event created on 13th September 2021. Edited for testing on 4th October.",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60f70bbe26f5c40011f2d011",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 50,
            "maxVolunteers": 100,
            "duration": 60,
            "countries": [
                "GLOBAL",
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "LEARNING_AID",
            "deck": "https://api.p3fy.com/api/containers/goodera-vv/download/rvHrwhy9uZq6eoplyFxiqFO5RPga0GlDreoXSaC4uVJBcJQqtyV72HbYRPaeLVSm_1633341258747sampleeventdeck.pdf?redirect=false",
            "isPaid": false
        },
        {
            "id": "617803965a2e9a00114afb10",
            "name": "Test Before Handover - 26th October 2021",
            "eventLabel": "TEAM_BASED",
            "description": "This is a test event created on 26th October 2021 @7.00 PM",
            "richTextDescription": "<p>This is a test event created on 26th October 2021 @7.00 PM</p>",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60f70bbe26f5c40011f2d011",
            "expectedImpact": "Test",
            "preRequisites": "Test",
            "minVolunteers": 25,
            "maxVolunteers": 50,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL"
            ],
            "causes": [
                "SJH"
            ],
            "type": "COV_EFLASHCARD",
            "deck": "https://api.p3fy.com/api/containers/goodera-vv/download/hEHhmZ1B309dtk2iLiuvFhWdRS4Xw5wvhsabcQYPafUoKJA5vy5Q48lA8nmG7DPi_1635255182286sampleeventdeck.pdf?redirect=false",
            "isPaid": false
        },
        {
            "id": "61b87c93e596780011a4ae81",
            "name": "Test Before Handover - 14 December",
            "eventLabel": "TEAM_BASED",
            "description": "Test",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "test test",
            "minVolunteers": 26,
            "maxVolunteers": 50,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "61a9f806c607b500117e434b",
            "name": "Test Before Handover - 3rd December",
            "eventLabel": "TEAM_BASED",
            "description": "Test event",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 25,
            "maxVolunteers": 50,
            "duration": 60,
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "61b9f76b0f984f0011ede61b",
            "name": "Record audiobooks to spread cheer to children battling cancer",
            "eventLabel": "TEAM_BASED",
            "description": "This Christmas, show your support by recording audiobooks or fables, or stories for children battling cancer. ",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "6172afa270bcd000118fe875",
            "expectedImpact": "Your voice will help provide emotional support to these children who would benefit from feeling a sense of solidarity and comfort. ",
            "preRequisites": "Please ensure you have a mobile phone/any other device with an audio recording app installed and a quiet place to record prior to the activity.",
            "minVolunteers": 7,
            "maxVolunteers": 500,
            "duration": 30,
            "countries": [
                "GLOBAL"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL",
                "CHIL"
            ],
            "causes": [
                "CHY",
                "HLTH"
            ],
            "type": "HOLIDAY",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "61c3425fca27bb00114e350a",
            "name": "Test Before Handover - 22nd December 2021",
            "eventLabel": "TEAM_BASED",
            "description": "This is a test event",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 25,
            "maxVolunteers": 50,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL",
                "ADUL"
            ],
            "causes": [
                "SJH",
                "ANIM"
            ],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "621319461caf8e001133c143",
            "name": "Test Before Handover - 21st Feb 2022",
            "eventLabel": "TEAM_BASED",
            "description": "Test Event for 21st Feb 2022",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 25,
            "maxVolunteers": 100,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        }
    ],
    "total": 117,
    "page": 1,
    "pageSize": 10,
    "totalPages": 12
}

List opportunities

API URL:

Fetches a paginated list of opportunities.

Field
Type
Description
Required
Example
countryCode
string
The country of opportunity in which the opportunity is available
false
“US”
durations
number[]
The duration in which the opportunity can be conducted
false
[60,90]
eventLocationType
enum(’VIRTUAL’, ‘IN_PERSON’)
The event format of the opportunity
false
‘VIRTUAL]
pageSize
number
Number of rows to retrieve at once
false
10
page
number
The country of opportunity in which the opportunity is available
false
“US”
curl --location --request GET 'https://developer-api.goodera.com/opportunities?pageSize=10' \
--header 'x-api-key: <YOUR-API-KEY>'
200
Request Successful
401
Unauthorized
403
Unauthenticated
500
Internal Server Error
RESPONSE
{
    "rows": [
        {
            "id": "610cc05de85e70001106f7d9",
            "name": "Test Before Handover - 8th Aug",
            "eventLabel": "TEAM_BASED",
            "description": "Event description - This is a test event created on 8th August 2021",
            "richTextDescription": "<p>Event description - This is a test event created on 8th August 2021</p>",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "Why volunteer - This is a test event created on 8th August 2021",
            "preRequisites": "Prerequisites - This is a test event created on 8th August 2021",
            "minVolunteers": 50,
            "maxVolunteers": 100,
            "duration": [
                60
            ],
            "countries": [
                "AF",
                "IN"
            ],
            "languages": [],
            "beneficiaries": [
                "ADUL"
            ],
            "causes": [
                "SJH",
                "ANIM",
                "CAPB",
                "CHY",
                "COM"
            ],
            "type": "DIGITAL_CARDS",
            "deck": "https://www.google.com/maps",
            "isPaid": false
        },
        {
            "id": "611e0de8e771a4001191e0a6",
            "name": "Test Before Handover - 19th August",
            "eventLabel": "TEAM_BASED",
            "description": "This is a test event created on 19th August 2021 ( Thursday @1.30 PM ).",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60f70bbe26f5c40011f2d011",
            "expectedImpact": "",
            "preRequisites": "This is a test event created on 19th August 2021 ( Thursday @1.30 PM ).\nThis event should reflect on Champions page",
            "minVolunteers": 100,
            "maxVolunteers": 1000,
            "duration": 120,
            "countries": [
                "AI",
                "AG"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "PM_LETTER",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "611e309bd4de0d00113bfcf1",
            "name": "create ",
            "eventLabel": "TEAM_BASED",
            "description": "qazwsx",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60d890e9337f310011e71c68",
            "expectedImpact": "wedf",
            "preRequisites": "wsxcv",
            "minVolunteers": 7,
            "maxVolunteers": 500,
            "duration": [
                60
            ],
            "countries": [
                "AD",
                "US"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL"
            ],
            "causes": [
                "SJH"
            ],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "613ed2a46256690011a9949f",
            "name": "Test Before Handover - 13th September",
            "eventLabel": "TEAM_BASED",
            "description": "Test event created on 13th September 2021. Edited for testing on 4th October.",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60f70bbe26f5c40011f2d011",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 50,
            "maxVolunteers": 100,
            "duration": 60,
            "countries": [
                "GLOBAL",
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "LEARNING_AID",
            "deck": "https://api.p3fy.com/api/containers/goodera-vv/download/rvHrwhy9uZq6eoplyFxiqFO5RPga0GlDreoXSaC4uVJBcJQqtyV72HbYRPaeLVSm_1633341258747sampleeventdeck.pdf?redirect=false",
            "isPaid": false
        },
        {
            "id": "617803965a2e9a00114afb10",
            "name": "Test Before Handover - 26th October 2021",
            "eventLabel": "TEAM_BASED",
            "description": "This is a test event created on 26th October 2021 @7.00 PM",
            "richTextDescription": "<p>This is a test event created on 26th October 2021 @7.00 PM</p>",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "60f70bbe26f5c40011f2d011",
            "expectedImpact": "Test",
            "preRequisites": "Test",
            "minVolunteers": 25,
            "maxVolunteers": 50,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL"
            ],
            "causes": [
                "SJH"
            ],
            "type": "COV_EFLASHCARD",
            "deck": "https://api.p3fy.com/api/containers/goodera-vv/download/hEHhmZ1B309dtk2iLiuvFhWdRS4Xw5wvhsabcQYPafUoKJA5vy5Q48lA8nmG7DPi_1635255182286sampleeventdeck.pdf?redirect=false",
            "isPaid": false
        },
        {
            "id": "61b87c93e596780011a4ae81",
            "name": "Test Before Handover - 14 December",
            "eventLabel": "TEAM_BASED",
            "description": "Test",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "test test",
            "minVolunteers": 26,
            "maxVolunteers": 50,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "61a9f806c607b500117e434b",
            "name": "Test Before Handover - 3rd December",
            "eventLabel": "TEAM_BASED",
            "description": "Test event",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 25,
            "maxVolunteers": 50,
            "duration": 60,
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "61b9f76b0f984f0011ede61b",
            "name": "Record audiobooks to spread cheer to children battling cancer",
            "eventLabel": "TEAM_BASED",
            "description": "This Christmas, show your support by recording audiobooks or fables, or stories for children battling cancer. ",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "6172afa270bcd000118fe875",
            "expectedImpact": "Your voice will help provide emotional support to these children who would benefit from feeling a sense of solidarity and comfort. ",
            "preRequisites": "Please ensure you have a mobile phone/any other device with an audio recording app installed and a quiet place to record prior to the activity.",
            "minVolunteers": 7,
            "maxVolunteers": 500,
            "duration": 30,
            "countries": [
                "GLOBAL"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL",
                "CHIL"
            ],
            "causes": [
                "CHY",
                "HLTH"
            ],
            "type": "HOLIDAY",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "61c3425fca27bb00114e350a",
            "name": "Test Before Handover - 22nd December 2021",
            "eventLabel": "TEAM_BASED",
            "description": "This is a test event",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 25,
            "maxVolunteers": 50,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [
                "ADOL",
                "ADUL"
            ],
            "causes": [
                "SJH",
                "ANIM"
            ],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        },
        {
            "id": "621319461caf8e001133c143",
            "name": "Test Before Handover - 21st Feb 2022",
            "eventLabel": "TEAM_BASED",
            "description": "Test Event for 21st Feb 2022",
            "eventLocationType": "VIRTUAL",
            "organization": "6103c43fb023d40011fbf06b",
            "partner": "618a60f52ba1cb00114b8ac8",
            "expectedImpact": "",
            "preRequisites": "",
            "minVolunteers": 25,
            "maxVolunteers": 100,
            "duration": [
                60
            ],
            "countries": [
                "US"
            ],
            "languages": [],
            "beneficiaries": [],
            "causes": [],
            "type": "AUDIOBOOK",
            "deck": null,
            "isPaid": false
        }
    ],
    "total": 117,
    "page": 1,
    "pageSize": 10,
    "totalPages": 12
}

Registrations

Add registration

API URL:

Used for creation of registrations for an event

Field
Type
Description
Required
Example
eventId
string
The event for which registration is added
true
“61c3425fca27bb00114e350a”
startTimeStamp
string
The email for registration to be created
true
“2024-03-08T18:49:37.116Z”
curl --location --request POST 'https://developer-api.goodera.com/registrations' \
--header 'x-api-key: <YOUR-API-KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "eventId": "65f96c9232be9d001205ec9a",
    "email":"karansaklani201@gmail.com"
}'
200
Request Successful
401
Unauthorized
403
Unauthenticated
500
Internal Server Error
RESPONSE
{
    "_id": "65f96d1e1d38620012d38261",
    "event": "65f96c9232be9d001205ec9a",
    "organizationUser": "65f96d1eedbaa600127874a4",
    "zoomAttended": false,
    "thankYouEmailSent": false,
    "attendance": false,
    "createdAt": "2024-03-19T10:46:54.778Z",
    "updatedAt": "2024-03-19T10:46:54.778Z",
    "active": true
}

Delete registration

API URL:

Delete registration added for an event

Field
Type
Description
Required
Example
registrationId
string
The registrationId for which registration has to be removed
false
“65f96d1e1d38620012d38261”
curl --location --request DELETE 'https://developer-api.goodera.com/registrations/' \
--header 'x-api-key: <YOUR-API-KEY>'
200
Request Successful
401
Unauthorized
403
Unauthenticated
500
Internal Server Error
RESPONSE
{ success: true }

Get registrations for an event

API URL:

Get a list of registrations for an event.
Deleted registrations will be removed from the list

Field
Type
Description
Required
Example
eventId
string
The identifier of the event for which registrations have to be fetched
true
“65f96d1e1d38620012d38261”
curl --location --request GET 'https://developer-api.goodera.com/registrations/by_event/{id}' \
--header 'x-api-key: <YOUR-API-KEY>'
200
Request Successful
401
Unauthorized
403
Unauthenticated
500
Internal Server Error
RESPONSE
[
    {
        "id": "65f97f6e7551f1001344d8ba",
        "email": "partnerships2@goodera.com",
        "attended": false,
        "createdAt": "2024-03-19T12:05:02.869Z",
        "updatedAt": "2024-03-19T12:05:02.869Z",
        "eventId": "65f97e5700c7700012ccc64c"
    },
    {
        "id": "65f97f6e7551f1001344d8bb",
        "email": "karan.saklani@goodera.com",
        "attended": false,
        "createdAt": "2024-03-19T12:05:02.869Z",
        "updatedAt": "2024-03-19T12:05:02.869Z",
        "eventId": "65f97e5700c7700012ccc64c"
    }
]

Tracking Time

Add participation

API URL:

Used for creation of participations for an event

Field
Type
Description
Required
Example
eventId
string
The event for which participation is added
true
“61c3425fca27bb00114e350a”
startTimeStamp
string
The email for participation to be created
true
“2024-03-08T18:49:37.116Z”
curl --location --request POST 'https://developer-api.goodera.com/participation' \
--header 'x-api-key: <YOUR-API-KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "eventId": "65f96c9232be9d001205ec9a",
    "email":"karansaklani201@gmail.com"
}'
200
Request Successful
401
Unauthorized
403
Unauthenticated
500
Internal Server Error
RESPONSE
{
    "_id": "65f96d1e1d38620012d38261",
    "event": "65f96c9232be9d001205ec9a",
    "organizationUser": "65f96d1eedbaa600127874a4",
    "zoomAttended": true,
    "thankYouEmailSent": true,
    "attendance": true,
    "createdAt": "2024-03-19T10:46:54.778Z",
    "updatedAt": "2024-03-19T10:46:54.778Z",
    "active": true
}

Master data

Timezone

API URL:

Unauthenticated

Country

API URL:

Unauthenticated

Language

API URL:

Unauthenticated