curl --request GET \
--url https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup \
--header 'Authorization: Bearer <token>'import requests
url = "https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"email": "[email protected]",
"slack_id": "<string>",
"registered": true,
"participant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"participant_event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"admin_url": "<string>",
"status": "invited"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Look up a registration by email
Read-only check of whether an email or Slack ID is registered for the event. Pass exactly one of email or slack_id; sending both is a 422. The response echoes whichever one was matched on and leaves the other null. Safe to call on every sign-in; never mutates. Looking up by email is available to event and series API keys and to global API tokens scoped to support:read. Looking up by slack_id is for the support bot only: it needs a global API token that permits support:read, and any other caller gets a 403. admin_url links to the registration’s admin page; participant_event_id is the id GET /events/{event_id}/participants/{id} takes.
curl --request GET \
--url https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup \
--header 'Authorization: Bearer <token>'import requests
url = "https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://attend.hackclub.com/api/v1/events/{event_id}/participants/lookup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"email": "[email protected]",
"slack_id": "<string>",
"registered": true,
"participant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"participant_event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"admin_url": "<string>",
"status": "invited"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Authorizations
Mobile token, global API token, series API key, or event API key. See Authentication above for which endpoints each one reaches.
Path Parameters
Event id or slug.
Query Parameters
Matches only the Slack ID Hack Club Auth verified for the participant's account, case-insensitively. Slack IDs typed onto a profile or registration are ignored, so someone who has never signed in to Attend can't be found this way. Requires a global API token that permits support:read; event and series API keys get a 403.
"U0123ABCDEF"
Response
Lookup result.
Was this page helpful?