Upload custom FHIR profile

Upload a custom FHIR StructureDefinition profile for use with the lang2fhir service.

All metadata is derived from the StructureDefinition JSON itself. The lowercase id field from the StructureDefinition is used as the profile's unique identifier and lookup key. To use the uploaded profile with /lang2fhir/create, pass this id as the resource parameter.

Uploads will be rejected if:

  • A built-in US Core or R4 base profile already exists with the same id
  • A custom profile with the same id has already been uploaded
  • A custom profile with the same url has already been uploaded
Body Params
string
required

Base64 encoded JSON string of a FHIR StructureDefinition. The profile must include id, url, type, and a snapshot with elements. All metadata (version, resource type, identifier) is derived from the StructureDefinition itself. The lowercase id from the StructureDefinition becomes the profile's lookup key.

string

Implementation Guide name to group this profile under. Defaults to "custom" if omitted. Cannot be "us_core" (reserved). Use this to organize custom profiles into named IGs that can be referenced when calling create/multi or document/multi endpoints.

string
length ≤ 2000

Natural language context that helps the LLM select the right profiles from this implementation guide during resource detection. For example, "When the text mentions phenotypic features or abnormalities, prefer the hpo-observation profile over Condition." This is stored as IG-level metadata and injected into the LLM prompt. Max 2000 characters. Providing this field on any upload will update the context for the entire IG (last write wins).

Responses

400

Invalid request or profile validation failed. Possible reasons:

  • Missing or invalid StructureDefinition JSON
  • Missing required fields (id, url, type, snapshot with elements)
  • A built-in US Core or R4 base profile exists with the same id
  • A custom profile with the same id or url already exists
401

Unauthorized

403

Forbidden - requires develop or launch tier access

500

Server error

Language
Credentials
Bearer
JWT
URL
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json