Fetch all events for an issue like this

issue = "12345678"
events = get_all_issue_events(issue)
  • First set your SENTRY_AUTH_TOKEN as env var
  • With definitions..
import requests
import time

def get_all_issue_events(organization_slug, project_slug, issue_id):
    url = 'https://app.getsentry.com/api/0/issues/%s/events/' % issue_id
    all_data = get_all_data(url)
    event_ids = [x["id"] for x in all_data]
    detail_vec = [get_event_data(organization_slug, project_slug, event_id) for event_id in event_ids]
    return all_data, detail_vec


def get_all_data(url):
    token = os.environ.get('SENTRY_AUTH_TOKEN')
    headers = {"Authorization": "Bearer %s" % token,
            'Content-Type': 'application/json'}

    next_results = 'true'
    next_url = url

    all_data = []
    while next_results == 'true':

        # Do fetch
        pass
        response = requests.get(next_url, headers=headers)

        if response.status_code == 200:
            data = response.json()
            if isinstance(data, list):
                all_data += data
            elif isinstance(data, dict):
                all_data.append(data)

            next_results = response.links.get('next', {}).get('results')
            next_url = response.links.get('next', {}).get('url')
            time.sleep(0.4)
        else:
            next_results = 'false'

    return all_data
    
def get_event_data(organization_slug, project_slug, event_id):

    url = f"https://sentry.io/api/0/projects/{organization_slug}/{project_slug}/events/{event_id}/"
    
    token = os.environ.get('SENTRY_AUTH_TOKEN')
    headers = {"Authorization": "Bearer %s" % token,
            'Content-Type': 'application/json'}
    response = requests.get(url, headers=headers)
    return response.json()