How to access custom registration fields via API

Hello everyone,

When I query the registrations of an event via the API, I only get a very basic record (Related Source Code).

How (if at all) can I access the custom defined fields of my registration forms? Is there an URL-parameter that I can add to my request, like

GET <my-indico-url>/api/events/123/registrants/12345?detail=all

There seems to have been a related PR which got discarded, and sadly the link to the documentation in it yields a 404.

Thank you for any advice.

We plan to add an API that returns full registration details in a future version of Indico.

The current API was made for the mobile checkin app so it only contains the field we needed for that.

Thank you for the quick answer. Is there already a GitHub issue that I could monitor in that case?

Not sure, I don’t remember seeing one for it.

I didn’t find one either, so I took the liberty to create a new Feature Request

Take a look at GitHub - bpedersen2/indico-mlz-export: Restore old export api functionality which does enhance the export. It could form a basis for your needs as well.

Thank you for the suggestion. We looked into it earlier (I should have mentioned that). Our admin declined the addition of the plugin on the reasons of potential security / data protection issues and the legacy Python code base.

I agree with their assessment and understand the desire to stick with the built-in features of Indico, if possible.

This is not to say we did not appreciate the work @bpedersen2 put into this plugin, I learned a fair few bits about the API while investigating the code.

While not an official API, you might want to check out GitHub - kewisch/indico-cli which does a few things with custom registration fields without any extra plugins.

Thank you @kewisch for the hint. Do I see that correctly that for the registrations the code does not use the API but instead queries the website with the proper filters set and then extracts the desired information form the returned HTML?

While this indubitably works, this approach is a bit hackish IMHO. Having a proper API would be preferable. @ThiefMaster do you happen to have a timeline for that yet?