Writing an exporter plugin

An Exporter is a method to export the submission or schedule data in pretalx for later use in another program.

In this document, we will walk through the creation of an exporter output plugin step by step.

Please read Creating a plugin first, if you haven’t already.

Exporter registration

The exporter API does not make a lot of usage from signals, but it does use a signal to get a list of all available exporters. Your plugin should listen for this signal and return the subclass of pretalx.common.exporter.BaseExporter that we’ll provide in this plugin:

from django.dispatch import receiver

from pretalx.common.signals import register_data_exporters

@receiver(register_data_exporters, dispatch_uid="exporter_myexporter")
def register_data_exporter(sender, **kwargs):
    from .exporter import MyExporter
    return MyExporter

The exporter class

class pretalx.common.exporter.BaseExporter

The central object of each exporter is the subclass of BaseExporter.


A short and unique identifier for this exporter.

This should only contain lower-case letters and in most cases will be the same as your package name.

Return type:str

This is an abstract attribute, you must override this!


A human-readable name for this exporter.

This should be short but self-explaining. Good examples include ‘JSON’ or ‘Microsoft Excel’.

Return type:str

This is an abstract attribute, you must override this!


Return True if the exported data should be publicly available once the event is public, False otherwise.

Return type:bool

This is an abstract attribute, you must override this!


Return True if the link to the exporter should be shown as QR code, False (default) otherwise. Override the get_qr_code method to override the QR code itself.

Return type:bool

The urls.base attribute contains the relative URL where this exporter’s data will be found, e.g. /event/schedule/export/myexport.ext Use exporter.urls.base.full() for the complete URL, taking into account the configured event URL, or HTML export URL.


Return either a fa- string or some other symbol to accompany the exporter in displays.

Return type:str

This is an abstract attribute, you must override this!


Render the exported file and return a tuple consisting of a file name, a file type and file content.

Return type:Tuple[str, str, str]

This is an abstract method, you must override this!


The export will now be available for organisers in the schedule related export view. If you’ve set public = True, it will also show up in the drop down in the event agenda.