POST /api/ictrp/trials
Price: 10 credits
One trial record from the WHO ICTRP meta-registry, normalised to the WHO Trial Registration Data Set: the source register and its own record URL, public and scientific titles, sponsors and funding sources, recruitment status, study type, design, phase and target size, countries of recruitment, health conditions, interventions, primary and secondary outcomes with their time frames, inclusion and exclusion criteria with the age and sex limits, cross-registration ids, contacts, ethics reviews, and the result availability the source register reports.
ICTRP republishes what a member register submitted, so this is a summary of a trial rather than the trial's own record: around thirty fields, no result tables and no document list. `source_url` is the link back to the register that owns it, and `secondary_ids` is where the same trial's other registry numbers appear. An id the portal does not know answers 412 rather than an empty record, because a miss is served as a complete page with every heading and no values. Ids keep their register's own form — NCT01234567, ACTRN12620000762954, EUCTR2021-000546-17-DE — and are passed through unchanged.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)trial string required — ICTRP trial id as the portal shows it, or a portal URL containing one (examples: "NCT04481204", "EUCTR2021-000546-17-DE", "https://trialsearch.who.int/Trial2.aspx?TrialID=ACTRN12620000762954"; minLength: 1)@type string (default: "IctrpTrial")id string requiredurl string (default: "")source_register string (default: "")source_url string nullablepublic_title string (default: "")scientific_title string nullableacronym string nullableis_prospectively_registered boolean nullableregistration_date string nullableenrollment_date string nullablelast_updated string nullableprimary_sponsor string nullablesecondary_sponsors array (default: [])funding_sources array (default: [])recruitment_status string nullablestudy_type string nullablestudy_design string nullableallocation string nullableassignment string nullablephase string nullabletarget_size string nullablecountries array (default: [])conditions array (default: [])interventions array (default: [])primary_outcomes array (default: [])@type string (default: "IctrpOutcome")name string (default: "")time_frame string nullablesecondary_outcomes array (default: [])@type string (default: "IctrpOutcome")name string (default: "")time_frame string nullableinclusion_criteria string nullableexclusion_criteria string nullableage_minimum string nullableage_maximum string nullablesex string nullablesecondary_ids array (default: [])contacts array (default: [])@type string (default: "IctrpContact")contact_type string nullablefirst_name string nullablemiddle_name string nullablelast_name string nullableaffiliation string nullableaddress string nullablepostcode string nullablecity string nullablecountry string nullablephone string nullableemail string nullableethics_reviews array (default: [])@type string (default: "IctrpEthicsReview")status string nullableapproval_date string nullablecontact_name string nullablecontact_address string nullablecontact_phone string nullablecontact_email string nullablehas_results boolean nullableresults_url string nullableresults_protocol_url string nullableresults_date_posted string nullableresults_date_completed string nullableresults_first_publication_date string nullableresults_summary string nullableresults_baseline_characteristics string nullableresults_adverse_events string nullableresults_outcome_measures string nullableipd_sharing_plan string nullableipd_sharing_description string nullable422 — The input contained no trial id. Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The ICTRP portal holds no trial with that id. Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.