Skip to main content
POST
https://api.vomo.org/v1
/
projects
Create a Project
curl --request POST \
  --url https://api.vomo.org/v1/projects \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Community Gathering",
  "description": "Inviting & meeting new neighbors of the community. Serving meals, setup game stations, face paintings for kids...etc.",
  "allow_guests": 1,
  "age_limit": 13,
  "participant_approval_required": 1,
  "show_volunteer_counter": 1,
  "volunteer_counter_threshold": 10,
  "privacy": "PUBLIC",
  "owners": [
    {
      "id": 1,
      "is_primary_owner": 1,
      "send_notifications": 1
    }
  ],
  "address": {
    "lat": 33.214561,
    "lng": -96.614456,
    "country": "United States",
    "locality": "McKinney",
    "timezone": "America/Chicago",
    "postal_code": "75069",
    "country_short": "US",
    "locality_short": "McKinney",
    "formatted_address": "610 Elm St Suite 800, McKinney, TX 75069, USA",
    "postal_code_short": "75069",
    "administrative_area_level_1": "Texas",
    "administrative_area_level_1_short": "TX"
  },
  "details": "Wear comfortable shoes!",
  "volunteer_question": "What is your t-shirt size?",
  "background_check_required": 1,
  "draft": 0,
  "organization_id": 1,
  "images": [
    {
      "l": "https://assets.vomo.org/categories/animals/Animals.jpg",
      "s": "https://assets.vomo.org/categories/animals/Animals+small.jpg",
      "o": "https://assets.vomo.org/categories/animals/Animals.jpg"
    }
  ],
  "point_person": {
    "name": "John Volunteer",
    "phone": "5555555555",
    "email": "volunteer@vomo.org"
  },
  "categories": [
    {
      "id": 1
    }
  ],
  "campaigns": [
    {
      "id": 1
    }
  ],
  "attachment_files": [
    {
      "file": "<string>",
      "filename": "<string>"
    }
  ],
  "links": [
    {
      "title": "Go here for more information",
      "link": "https://vomo.org"
    }
  ],
  "project_type": "dated",
  "dates": [
    {
      "id": "123",
      "starts_at": "2020-01-01 09:00:00",
      "ends_at": "2020-01-01 12:00:00",
      "status": "existing",
      "roles": [
        {
          "id": "123",
          "name": "Greeter",
          "description": "A cheery person for greeting guests as they come in.",
          "capacity": 2
        }
      ],
      "items": [
        {
          "id": "123",
          "name": "Bottled Water",
          "description": "A case of 24",
          "capacity": 10
        }
      ]
    }
  ]
}
'
{
  "code": 201,
  "message": "Project created.",
  "data": {
    "type": "project",
    "id": "4003",
    "project_name": "Holiday Gift Drive",
    "description": "Wrap and distribute holiday gifts to children in need.",
    "details": "Please arrive 10 minutes early for orientation.",
    "url": "https://app.vomo.org/opportunity/holiday-gift-drive",
    "organization_id": 50,
    "organization": "Riverside Hope Foundation",
    "organization_slug": "riverside-hope",
    "author_id": 7903,
    "owners": [
      {
        "id": 7903,
        "is_primary_owner": true,
        "send_notifications": true
      }
    ],
    "address": {
      "lat": "33.214561",
      "lng": "-96.614456",
      "country": "United States",
      "locality": "McKinney",
      "timezone": "America/Chicago",
      "postal_code": "75069",
      "country_short": "US",
      "locality_short": "McKinney",
      "formatted_address": "610 Elm St, McKinney, TX 75069, USA",
      "postal_code_short": "75069",
      "administrative_area_level_1": "Texas",
      "administrative_area_level_1_short": "TX"
    },
    "anytime": 0,
    "anywhere": 0,
    "draft": false,
    "created_at": "2025-11-18T10:00:00+00:00",
    "updated_at": "2025-11-18T10:00:00+00:00",
    "published_at": "2025-11-18T10:00:00+00:00",
    "campaigns": [],
    "certificates": [],
    "form_completions": [],
    "next_date": {
      "type": "project_date",
      "id": 40003,
      "starts_at": "2025-12-13T09:00:00+00:00",
      "ends_at": "2025-12-13T13:00:00+00:00",
      "participant_count": 0
    },
    "images": [],
    "point_person": {
      "name": "Priya Sharma",
      "phone": "(555) 012-0103",
      "email": "priya.sharma@example.org"
    },
    "allow_guests": true,
    "age_limit": 12,
    "volunteer_question": null,
    "participant_approval_required": false,
    "background_check_required": false,
    "show_volunteer_counter": false,
    "volunteer_counter_threshold": 0,
    "privacy": "PUBLIC",
    "all_dates": [
      {
        "type": "project_date",
        "id": 40003,
        "starts_at": "2025-12-13T09:00:00+00:00",
        "ends_at": "2025-12-13T13:00:00+00:00",
        "participant_count": 0
      }
    ]
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Project to create

Request body for creating or updating a project.

name
string
required

The name of the project

Example:

"Community Gathering"

description
string
required

A description for the project

Example:

"Inviting & meeting new neighbors of the community. Serving meals, setup game stations, face paintings for kids...etc."

allow_guests
boolean
default:0
required

Whether to allow volunteers to bring guests

Example:

1

age_limit
integer
required

The minimum age a volunteer must be

Required range: 0 <= x <= 99
Example:

13

participant_approval_required
boolean
default:0
required

Volunteers must be approved by the organizer before their spot is reserved.

Example:

1

show_volunteer_counter
boolean
default:0
required

Display number of participants. Note that this will only show on the project page if it is an Anytime project

Example:

1

volunteer_counter_threshold
integer
required

The minimum number of volunteers signed up before the counter is shown. Note that this will only show on the project page if it is an Anytime project

Required range: 0 <= x <= 999999
Example:

10

privacy
enum<string>
required

The visibility of the project. Possible values: PUBLIC — accessible by all VOMO users; PRIVATE — accessible only by members of the organization (those in the People list); UNLISTED — not listed publicly but accessible via direct link.

Available options:
PUBLIC,
PRIVATE,
UNLISTED
Example:

"PUBLIC"

owners
object[]
required
address
object
required

The address where the project will take place. The format used is the standard Google address API. Only timezone is required; all other fields are optional.

details
string

Emphasize important details such as shoes to wear or items to bring. This information goes in the signup confirmation email, and is a great place to detail next steps in a Project

Example:

"Wear comfortable shoes!"

volunteer_question
string

Ask your volunteers to provide additional information about themselves as they register. This field will be required to join the Serving Date.

Example:

"What is your t-shirt size?"

background_check_required
boolean
default:0

Volunteers must have a background check before signing up for your Project.

Example:

1

draft
boolean
default:0

When a project is in draft, it will not be viewable by anyone.

Example:

0

organization_id
integer

The Organization ID to post the project to. Note, you must be part of the organization to post a project to it.

Example:

1

images
object[]
point_person
object

Identify a person to contact or meet on the day of the Project. This contact info goes in the signup confirmation email, but this person does not receive notifications.

categories
object[]
campaigns
object[]

A list of existing campaigns to associate with the project. For organizations without a hub experience, at least one campaign is required; otherwise this is optional.

attachment_files
object[]
project_type
enum<string>

The scheduling type for the project. Cannot be changed after a project has been created. Possible values: dated — the project has specific dates and times when volunteers are needed; anytime — volunteers can participate at any time, with no fixed schedule.

Available options:
dated,
anytime
Example:

"dated"

dates
object[]

Response

Returns the newly created project record in full detail, including its generated serving dates and any associated campaigns.

code
integer
Example:

201

message
string
Example:

"Project created."

data
object

A VOMO Project

Last modified on June 5, 2026