Concepts
Recherche
Trouvez des inscriptions avec un petit langage de requête, et parcourez les résultats.
Les inscriptions se recherchent avec GET/v1/registrations/search. C’est la seule recherche de la v1 : les événements, les appels à communications et les communications se listent, ils ne se recherchent pas.
Une première recherche
Cette recherche cherche un texte dans les noms, les adresses e-mail et les identifiants des inscriptions d’un événement :
curl
JavaScript
Python
Le langage de requête
Une requête est une ou plusieurs clauses reliées par AND (en majuscules, avec une espace de chaque côté).
champ:'valeur'retient les objets dont le champ est égal à la valeur.champ~'valeur'retient ceux dont le champ contient la valeur, sans distinction de casse. La valeur compte au moins 3 caractères autres que des espaces, au plus 200, et ne peut contenir ni%, ni_, ni\.
Une valeur est toujours entre apostrophes droites. Une apostrophe à l’intérieur d’une valeur s’écrit \' : text~'o\'brien'.
Chaque champ apparaît au plus une fois. OR, les comparaisons et les champs absents de la liste ci-dessous renvoient 400 search_query_invalid, dont le message indique la position du problème.
Champs
event:égal àobligatoire- L’événement dont les inscriptions sont recherchées (son identifiant). Obligatoire.
text~contientfacultatif- Contient ce texte, sans distinction de casse : porte sur l’identifiant de l’inscription, le prénom, le nom et l’adresse e-mail seulement.
status:égal àfacultatif- Égal à ce statut d’inscription (require_admin_validation, validated, canceled, rejected).
role:égal àfacultatif- Égal à ce rôle de participant (attendee, applicant, reviewer, committee, exhibitor, sponsor, partner, guest).
La clause event est obligatoire : une recherche porte toujours sur un seul événement.
Résultats
Une recherche renvoie un objet search_result :
{
"object": "search_result",
"url": "/v1/registrations/search",
"has_more": true,
"next_page": "eyJjIjoxNzk1NTIxNjAwLCJpIjoiU1VCLThjM2UyYTcxIiwicSI6IjNmOWEifQ",
"data": [
{
"id": "SUB-8c3e2a71-0f4b-4d6a-b5e9-27c1d9a4e612",
"object": "registration",
"event": "EVT-5a1f0c2e-3b7d-4e91-9c2a-1d6e8f4b7a30",
"status": "validated",
"role": "attendee",
"first_name": "Ada",
"last_name": "Lovelace",
"email": "ada.lovelace@example.com",
"ticket": {
"name": "Full pass"
},
"checkin": {
"checked_in": true,
"last_checked_in_at": 1810119600
},
"created": 1795521600,
"updated": 1810119600
}
]
}Les résultats viennent du plus récent au plus ancien, comme dans les listes.
La page suivante
Envoyez le next_page de la réponse dans page, avec la même query :
curl
JavaScript
Python
next_page vaut null sur la dernière page. Il est opaque : ne le construisez ni ne l’analysez jamais. Un page envoyé avec une autre query renvoie parameter_invalid.
limit, expand[]=data.event et include[]=total_count fonctionnent comme dans les listes. Voir Pagination et Développer les réponses.
Pourquoi pas d’autre recherche
Une recherche dans les événements ou les communications atteindrait des données que l’API ne renvoie jamais, comme les évaluateurs ou les adresses e-mail des auteurs. Elle ne viendra qu’avec un filtre limité aux champs publics. Voir Données exclues.