Catalyst
The official Eventication API (work in progress)
Last updated
curl -sS "https://api.eventication.com/catalyst/memberships?page=1" \
-H "Authorization: Bearer YOUR_CATALYST_API_KEY" \
-H "Accept: application/json"require 'json'
require 'net/http'
require 'uri'
API_KEY = 'YOUR_CATALYST_API_KEY'
BASE_URL = 'https://api.eventication.com'
def get_json(path, page:)
uri = URI("#{BASE_URL}#{path}?page=#{page}")
req = Net::HTTP::Get.new(uri)
req['Authorization'] = "Bearer #{API_KEY}"
req['Accept'] = 'application/json'
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
raise "HTTP #{res.code}: #{res.body}" unless res.is_a?(Net::HTTPSuccess)
JSON.parse(res.body)
end
# Fetch all memberships (paginated)
page = 1
loop do
payload = get_json('/catalyst/memberships', page: page)
payload.fetch('data').each do |m|
puts "#{m['id']} #{m['firstname']} #{m['lastname']} <#{m['email_address']}>"
end
next_page = payload.dig('meta', 'next_page')
break if next_page.nil?
page = next_page
endconst apiKey = 'YOUR_CATALYST_API_KEY';
const baseUrl = 'https://api.eventication.com';
async function fetchPage(path, page) {
const res = await fetch(`${baseUrl}${path}?page=${page}`, {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Accept': 'application/json',
},
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
return await res.json();
}
let page = 1;
while (true) {
const payload = await fetchPage('/catalyst/work_jobs', page);
// payload.data ...
if (!payload.meta.next_page) break;
page = payload.meta.next_page;
}import requests
api_key = "YOUR_CATALYST_API_KEY"
base_url = "https://api.eventication.com"
page = 1
while True:
r = requests.get(
f"{base_url}/catalyst/work_shifts",
params={"page": page},
headers={"Authorization": f"Bearer {api_key}", "Accept": "application/json"},
timeout=30,
)
r.raise_for_status()
payload = r.json()
for row in payload["data"]:
print(row["id"], row["work_job_id"], row["membership_id"])
if payload["meta"]["next_page"] is None:
break
page = payload["meta"]["next_page"]