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
Get opportunity
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>'
{
"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
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>'
{
"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
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"
}'
{
"_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
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>'
{ success: true }
Get registrations for an event
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>'
[
{
"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
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"
}'
{
"_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
Unauthenticated
Country
Unauthenticated
Language
Unauthenticated