Volunteering Data

Publishing Opportunities Data

Sharing multiple organisations opportunities

Volunteering opportunities can be shared as a list of organisations, each containing their activities with full details. This is the recommended structure for publishing opportunity data using the standard.

The top-level document is a JSON-LD array of Organisation objects. Each organisation embeds its activities, which in turn embed their roles and sessions (with location and time details).

Example 1
{
  "@context": "https://api.volunteeringdata.io/context/v1",
  "graph": [
    {
      "type": "Organisation",
      "id": "https://id.volunteeringdata.io/684059665d271835a2253c9d",
      "name": "Under One Sky",
      "description": "Under One Sky supports people experiencing homelessness through outreach, community meals, and practical assistance.",
      "website": "https://underoneskytogether.com/",
      "cause": [
          "https://ns.volunteeringdata.io/AntiPoverty"
      ],
      "activity": [
          {
          "id": "https://id.volunteeringdata.io/686e542f7734eb69b0ec1516",
          "title": "Volunteer Skywalker",
          "description": "Help distribute food, drink, and much-needed essential supplies to those who don't have a safe place to call home.",
          "role": [
              {
              "title": "Outreach Volunteer",
              "description": "Walk set routes to engage with people sleeping rough, offering food, warm clothing, and signposting to support services.",
              "commitment": "One evening per week, 3-hour shift",
              "applyLink": "https://underoneskytogether.com/get-involved/join-us",
              "allowsRemoteParticipation": false,
              "minimumAge": "18",
              "requirement": [
                  "https://ns.volunteeringdata.io/DBSCheck"
              ],
              "reward": [
                  "https://ns.volunteeringdata.io/TrainingProvided",
                  "https://ns.volunteeringdata.io/ExpensesReimbursed"
              ],
              "skill": [
                  "https://ns.volunteeringdata.io/Communication",
                  "https://ns.volunteeringdata.io/EmpathyAndCompassion"
              ]
              }
          ],
          "session": [
              {
              "location": {
                  "name": "Under One Sky Hub",
                  "address": "127-128 Lower Marsh, London SE1 7AE, UK",
                  "latitude": "51.5005014",
                  "longitude": "-0.1136474"
              },
              "time": [
                  "https://ns.volunteeringdata.io/MondayAfternoon",
                  "https://ns.volunteeringdata.io/TuesdayAfternoon",
                  "https://ns.volunteeringdata.io/SaturdayMorning",
                  "https://ns.volunteeringdata.io/SaturdayAfternoon"
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "Organisation",
        "id": "https://id.volunteeringdata.io/64103c352a0eedb6aef42d3d",
        "name": "Oxfam GB",
        "description": "Oxfam is a global movement of people working together to end the injustice of poverty.",
        "website": "https://www.oxfam.org.uk/",
        "charityNumber": "202918",
        "image": "https://example.org/images/oxfam-logo.png",
        "cause": [
            "https://ns.volunteeringdata.io/AntiPoverty",
            "https://ns.volunteeringdata.io/CivilRights"
        ],
        "activity": [
          {
            "title": "Shop Volunteer",
            "description": "Help sort donations, serve customers, and keep the shop looking great. No experience needed.",
            "role": [
                {
                "title": "Shop Floor Volunteer",
                "description": "Sort and price donated items, assist customers, and help maintain the shop floor.",
                "commitment": "Half a day per week",
                "applyLink": "https://www.oxfam.org.uk/get-involved/volunteer-with-us/volunteer-in-our-shops/",
                "allowsRemoteParticipation": false,
                "minimumAge": "14",
                "reward": [
                    "https://ns.volunteeringdata.io/TrainingProvided"
                ],
                "skill": [
                    "https://ns.volunteeringdata.io/CustomerService",
                    "https://ns.volunteeringdata.io/Teamwork"
                ]
              }
            ],
            "session": [
              {
              "location": {
                  "name": "Oxfam Shop Headingley",
                  "address": "3 North Lane, Headingley, Leeds LS6 3HG, UK",
                  "latitude": "53.8218",
                  "longitude": "-1.5811"
              },
              "time": [
                  "https://ns.volunteeringdata.io/MondayMorning",
                  "https://ns.volunteeringdata.io/MondayAfternoon",
                  "https://ns.volunteeringdata.io/TuesdayMorning",
                  "https://ns.volunteeringdata.io/TuesdayAfternoon",
                  "https://ns.volunteeringdata.io/WednesdayMorning",
                  "https://ns.volunteeringdata.io/WednesdayAfternoon",
                  "https://ns.volunteeringdata.io/ThursdayMorning",
                  "https://ns.volunteeringdata.io/ThursdayAfternoon",
                  "https://ns.volunteeringdata.io/FridayMorning",
                  "https://ns.volunteeringdata.io/FridayAfternoon",
                  "https://ns.volunteeringdata.io/SaturdayMorning",
                  "https://ns.volunteeringdata.io/SaturdayAfternoon"
              ]
            }
          ]
        }
      ]
    }
  ]
}
Note 1

The graph property (mapped to @graph in JSON-LD) is used to group multiple top-level objects under a single shared @context. This avoids repeating the context in every organisation object. Each item in the graph array is an independent node in the linked data graph.

Sharing one organisation’s opportunities

A single organisation can publish its own opportunities as one object with multiple activities.

Example 2
{
  "@context": "https://api.volunteeringdata.io/context/v1",
  "type": "Organisation",
  "id": "https://id.volunteeringdata.io/64103c352a0eedb6aef42d3d",
  "name": "Oxfam GB",
  "description": "Oxfam is a global movement of people working together to end the injustice of poverty.",
  "website": "https://www.oxfam.org.uk/",
  "charityNumber": "202918",
  "cause": [
      "https://ns.volunteeringdata.io/AntiPoverty",
      "https://ns.volunteeringdata.io/CivilRights"
  ],
  "activity": [
      {
      "title": "Shop Volunteer",
      "description": "Help sort donations, serve customers, and keep the shop looking great. No experience needed.",
      "role": [
          {
          "title": "Shop Floor Volunteer",
          "description": "Sort and price donated items, assist customers, and help maintain the shop floor.",
          "commitment": "Half a day per week",
          "applyLink": "https://www.oxfam.org.uk/get-involved/volunteer-with-us/volunteer-in-our-shops/",
          "allowsRemoteParticipation": false,
          "minimumAge": "14",
          "reward": [
              "https://ns.volunteeringdata.io/TrainingProvided"
          ],
          "skill": [
              "https://ns.volunteeringdata.io/CustomerService",
              "https://ns.volunteeringdata.io/Teamwork"
          ]
          }
      ],
      "session": [
          {
          "location": {
              "name": "Oxfam Shop Headingley",
              "address": "3 North Lane, Headingley, Leeds LS6 3HG, UK",
              "latitude": "53.8218",
              "longitude": "-1.5811"
          },
          "time": [
              "https://ns.volunteeringdata.io/MondayMorning",
              "https://ns.volunteeringdata.io/MondayAfternoon",
              "https://ns.volunteeringdata.io/TuesdayMorning",
              "https://ns.volunteeringdata.io/TuesdayAfternoon",
              "https://ns.volunteeringdata.io/WednesdayMorning",
              "https://ns.volunteeringdata.io/WednesdayAfternoon",
              "https://ns.volunteeringdata.io/ThursdayMorning",
              "https://ns.volunteeringdata.io/ThursdayAfternoon",
              "https://ns.volunteeringdata.io/FridayMorning",
              "https://ns.volunteeringdata.io/FridayAfternoon",
              "https://ns.volunteeringdata.io/SaturdayMorning",
              "https://ns.volunteeringdata.io/SaturdayAfternoon"
          ]
          }
      ]
      },
      {
      "title": "Online Shop Volunteer",
      "description": "Help list and sell donated items online. Photograph items, write descriptions, and manage listings from home or in-store.",
      "role": [
          {
          "title": "Online Listings Volunteer",
          "description": "Photograph donated items, write compelling descriptions, and list them for sale on Oxfam's online shop.",
          "commitment": "Half a day per week",
          "applyLink": "https://www.oxfam.org.uk/get-involved/volunteer-with-us/volunteer-in-our-shops/",
          "allowsRemoteParticipation": true,
          "minimumAge": "16",
          "reward": [
              "https://ns.volunteeringdata.io/TrainingProvided"
          ],
          "skill": [
              "https://ns.volunteeringdata.io/Photography",
              "https://ns.volunteeringdata.io/Writing"
          ]
          }
      ],
      "session": [
          {
          "location": {
              "name": "Oxfam Shop Headingley",
              "address": "3 North Lane, Headingley, Leeds LS6 3HG, UK",
              "latitude": "53.8218",
              "longitude": "-1.5811"
          },
          "time": [
              "https://ns.volunteeringdata.io/MondayMorning",
              "https://ns.volunteeringdata.io/MondayAfternoon",
              "https://ns.volunteeringdata.io/WednesdayMorning",
              "https://ns.volunteeringdata.io/WednesdayAfternoon",
              "https://ns.volunteeringdata.io/FridayMorning",
              "https://ns.volunteeringdata.io/FridayAfternoon"
          ]
          }
      ]
      }
  ]
}

Sharing opportunities with metadata

Volunteering opportunities can be shared with additional information about the data itself: license, publisher, conformance and last modified date.

Example 3
{
  "@context": "https://api.volunteeringdata.io/context/v1",
  "conformsTo": "https://ns.volunteeringdata.io/",
  "license": "CC-BY-NC-SA-4.0",
  "publisher": "https://scvo.scot/",
  "modified": "2026-03-23",
  "graph": [
    {
      "type": "Organisation",
      "id": "https://id.volunteeringdata.io/684059665d271835a2253c9d",
      "name": "Under One Sky",
      ...
    }
  ]
}
Note

The license property value "CC-BY-NC-SA-4.0" is an SPDX license identifier.

SPDX (System Package Data Exchange) provides a standardised list of license identifiers that can be used to communicate licensing information in a concise and unambiguous way.

Note

Additional metadata information could be added to describe the data. For example, data services can be described using DCAT.

Other specifications can be used to describe data such as DPROD that extends DCAT and focuses on data services or Croissant that focuses on metadata for machine learning readiness.