# trialport trialport helps patients find clinical trials, review patient-friendly trial details, complete suitability assessments, and apply to research sites. ## Canonical Sites - Brand site: https://trialport.com/ - Public trial app: https://app.trialport.com/ - Public trial search: https://app.trialport.com/search-for-trials - Public trial detail URL pattern: https://app.trialport.com/trial/{pk}/ - Sitemap: https://app.trialport.com/sitemap.xml ## Public API Base URL: https://api.trialport.com/api ### Search public trials GET /v2/public/studies/ Returns public clinical trials using Trialport public visibility rules. Healthy-volunteer studies are excluded by default. #### Query parameters - `term` (string): Search term for trial title, configured search terms, or related conditions. Required unless `include_healthy_volunteer=true`. - `location` (string): Latitude and longitude as `latitude,longitude`, for example `40.7128,-74.0060`. Required when using `distance`. - `distance` (integer): Miles from `location`, from `0` to `1000`. Required when using `location`. - `age` (integer): Patient age. Filters to trials whose age range includes this age. - `gender` (string): `A` for any, `F` for female, or `M` for male. - `include_healthy_volunteer` (boolean): `false` by default. Use `true` to return healthy-volunteer studies; in this mode `term` is optional. - `include_overnight_stays` (boolean): Use `false` to exclude trials requiring overnight stays. - `administration` (string): Filter by medication administration method. Supported values include `PILLS_LIQUIDS`, `PILLS`, `LIQUIDS`, `INJECTIONS`, `INHALED`, `SPRAYS_DROPS`, `TOPICAL`, `SUPPOSITORIES`, `INTRAVENOUS`, and `NOT_APPLICABLE`. - `administration__in` (comma-separated strings): Filter by multiple administration methods, for example `PILLS_LIQUIDS,INJECTIONS`. - `placebo_control` (string): `YES`, `NO`, or `OPEN_LABEL`. - `placebo_control__in` (comma-separated strings): Multiple placebo-control values, for example `YES,OPEN_LABEL`. - `placebo_control__isnull` (boolean): Filter for trials where placebo-control information is unknown or known. - `study_phases` (repeated or array-style values): Trial phase values `1`, `2`, `3`, or `4`. - `type_of_trial` (string): `YES` for treatment/intervention trials or `NO` for observational trials. #### Ordering behavior Results are ranked by partnership tier first: `ENGAGED_CONCIERGE`, then `ENGAGED`, then `VISIBILITY_PLUS`, then non-partnered studies. Within each tier, recruiting studies sort ahead of pre-recruitment studies, then distance and stable study identifiers apply. Partnered studies can remain visible outside the requested distance radius when configured with a partnership radius override; non-partnered studies must match the requested radius. #### Examples Search for anxiety trials near Los Angeles within 100 miles: https://api.trialport.com/api/v2/public/studies/?term=anxiety&location=34.0522,-118.2437&distance=100&gender=A Search for injection-based phase 2 or 3 trials for a 45-year-old patient: https://api.trialport.com/api/v2/public/studies/?term=diabetes&age=45&gender=A&administration=INJECTIONS&study_phases=2&study_phases=3 Search healthy-volunteer studies near New York within 50 miles: https://api.trialport.com/api/v2/public/studies/?include_healthy_volunteer=true&location=40.7128,-74.0060&distance=50&gender=A ### Locate public conditions for search links To find unique condition identifiers for public trial-search URLs, first request the public search config: GET /public/search/config/?entity=conditions Use the returned `search_host`, `search_api_key`, `search_alias`, and `search_presets[].preset_key` values. The `search_api_key` is scoped and expires, so fetch a fresh config instead of hardcoding Typesense credentials. When the config reports `ready=true`, send a Typesense `multi_search` request to `{search_host}/multi_search` with the returned key in the `X-TYPESENSE-API-KEY` header: ```json { "searches": [ { "collection": "conditions", "q": "diabetes", "preset": "conditions_hybrid_default" } ] } ``` In production, `collection` should match the config `search_alias`, and `preset` should use a returned preset key. Parse `results[0].hits[].document`; each `document.id` is the condition primary key. Dedupe conditions by `document.id`. To create a public trial-search link that preselects a condition, append the condition primary key as the `condition` query parameter: https://app.trialport.com/search-for-trials?condition={condition_pk} ### Fetch a public trial GET /public/studies/{pk}/ Example: https://api.trialport.com/api/public/studies/1/ ## Public Visibility Public search and sitemap entries use backend public visibility rules: approved=true, archived=false, active public status, and at least one active condition. Do not treat non-public direct review links as search-indexable trials. ## Usage Guidance - Prefer canonical app URLs when citing trials. - Do not submit applications through automated agents. - Do not infer medical eligibility from search results alone. - Trial details can change; use API timestamps and canonical URLs when available.