import requests
AUTH_ENDPOINT = "https://auth.longenesis.com/realms/curator-engage/protocol/openid-connect/token"
USERNAME = "<your username>"
PASSWORD = "<your password>"
CLIENT_ID = "<Longenesis issued client id>"
CLIENT_SECRET = "<Longenesis issued client id>"
ORG_SLUG = "<orgagization slug>"
PROJECT_SLUG = "<activity slug>"
ACTIVITY_SLUG = "<activity slug>"
access_token = requests.post(
AUTH_ENDPOINT,
data={
"username": USERNAME,
"password": PASSWORD,
"grant_type": "password",
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
},
).json()["access_token"]
# Get a list all submissions to the consent activity (up to 5000 in one request).
response = requests.get(
f"https://engage-openapi.longenesis.com/v2/json_answers/{ORG_SLUG}",
params={
"activity_filter": ACTIVITY_SLUG,
"date_filter": ["2025-01-01", "2025-01-31"],
},
headers={"Authorization": f"Bearer {access_token}"},
)
for record in response.json()["records"]:
submission_id = record["submission_id"]
response2 = requests.get(
f"https://engage-openapi.longenesis.com/pdf/{ORG_SLUG}/{PROJECT_SLUG}/{ACTIVITY_SLUG}/{submission_id}/admin_download",
headers={"Authorization": f"Bearer {access_token}"},
)
with open(f"consent_file_{submission_id}.pdf", "wb") as f:
f.write(response2.content)