MENU navbar-image

Introduction

Documentation for the HackGreenville API. This API provides access to data stored in the HackGreenville database, such as events, organizations and more.

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

This API is not authenticated.

Endpoints

Events API v0

This API provides access to event data stored in the HackGreenville database.

Example request:
curl --request GET \
    --get "https://hackgreenville.com/api/v0/events?start_date=2025-01-01&end_date=2100-12-31&tags=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://hackgreenville.com/api/v0/events"
);

const params = {
    "start_date": "2025-01-01",
    "end_date": "2100-12-31",
    "tags": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://hackgreenville.com/api/v0/events'
params = {
  'start_date': '2025-01-01',
  'end_date': '2100-12-31',
  'tags': '1',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


[
    {
        "event_name": "Eos voluptas consequatur illo non.",
        "group_name": "Mrs. Isabell Hettinger tech group",
        "group_url": "quasi",
        "url": "http://mcdermott.com/itaque-officiis-labore-et-consequatur-fugit",
        "time": "2025-07-09T15:50:04.000000Z",
        "tags": "",
        "status": "past",
        "rsvp_count": 27,
        "description": "Officiis quia et earum. Enim ipsum at ut sapiente. At eum officiis delectus est laboriosam.",
        "uuid": "de8966ac-dbf6-319a-a587-63673f068bd5",
        "data_as_of": "2025-07-09T15:50:04.909306Z",
        "service_id": "8",
        "service": "eventbrite",
        "venue": {
            "name": "sit ut expedita molestiae perspiciatis",
            "address": "82332 Schulist Corners Apt. 190\nWest Keaton, AK 72585-6815",
            "city": "Davisshire",
            "state": "Ex.",
            "zip": "80864",
            "country": "ZA",
            "lat": "3.87321",
            "lon": "-160.456401"
        },
        "created_at": "2025-07-09T15:50:04.000000Z",
        "is_paid": null
    }
]
 

Request      

GET api/v0/events

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

start_date   string  optional  

The start date for events filtering (inclusive). Must be a valid date in the format Y-m-d. Must be a date before or equal to end_date. Example: 2025-01-01

end_date   string  optional  

The end date for events filtering (inclusive). Must be a valid date. Must be a valid date in the format Y-m-d. Must be a date after or equal to start_date. Example: 2100-12-31

tags   integer  optional  

Filter events by organization tag ID. Example: 1

Organizations API v0

This API provides access to organization data stored in the HackGreenville database.

Example request:
curl --request GET \
    --get "https://hackgreenville.com/api/v0/orgs?tags=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://hackgreenville.com/api/v0/orgs"
);

const params = {
    "tags": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://hackgreenville.com/api/v0/orgs'
params = {
  'tags': '1',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


[
    {
        "title": "blanditiis",
        "path": "https://www.will.org/est-vitae-voluptates-asperiores-corrupti-facilis-quia-enim-non",
        "changed": "2025-07-09T15:50:04.000000Z",
        "field_city": "Destinyport",
        "field_event_service": null,
        "field_events_api_key": null,
        "field_focus_area": "vero",
        "field_homepage": "similique",
        "field_event_calendar_homepage": "http://www.marks.com/rerum-temporibus-nihil-impedit-provident-perferendis.html",
        "field_primary_contact_person": "enim",
        "field_org_status": "active",
        "field_organization_type": "et",
        "field_year_established": 2025,
        "field_org_tags": "",
        "uuid": 90
    }
]
 

Request      

GET api/v0/orgs

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

tags   integer  optional  

Filter organizations by organization tag ID. Example: 1