API to query abstract submissions

just set up my first indico instance (looks great), using 3.3.4.

i wonder whether there’s an API endpoint to query pending abstract submissions.

my usecase: we are setting up a conference with paper-only-submission. that is: no extra “abstract submission” step, people should submit their full papers.
afaiu (after reading (Community) conference w/out call for abstracts?), this is only possible by “abusing” the Call for abstracts to tell users to also upload their papers.
as per Allow attachment to be mandatory in the abstract submission settings it seems it is not possible to make attachments mandatory, so my idea was to regularly run a cron-job that fetches all the submitted abstracts via the API, and then checks whether there is a file (PDF,…) attached to it. in case the user forgot to add the PDF, i would then send out a reminder to them.

is that possible?

There’s no official API for abstracts, but there is an “export to JSON” feature in the UI, and you can send a GET request to /event/XXX/manage/abstracts/abstracts.json to retrieve the JSON dump of all abstracts (use a personal access token with the “everything” scope to authenticate).

However, I just realized that we do not include information about attached files in there. I just opened a PR for the next minor release (v3.3.5) to add this. It should be fairly easy to apply the change as a patch on your instance in the meantime.

1 Like

thanks for the quick replay (and fix).

as a sidenote: i noticed that the web frontend uses a POST request (obviously because it allows to select specific abstracts) for retrieving the JSON, which requires an token with read/write permissions.

The export endpoints support GET which will give you everything instead of just specific abstracts. And yes, not having to send a CSRF token (and not requiring an “everything, all methods” token) was an intended side-effect of adding this functionality, besides not having to send all the abstract IDs which are not easy to get w/o screenscraping.

1 Like