medical_certificate_sportSports medical certificate
Is it a medical certificate under 6 months old, signed and in the runner's name?
- Category
- Certificates
- Country
- International
- Extracted fields
- 10 fields
- Cost
- 1 credit
Every race asks for a different maximum age. Constaia extracts only what you need —fit to compete, date, doctor and licence number— and checks the age against the race date, the holder, the signature and the stamp. It never extracts diagnoses.
- Use reference_date with the race date and max_age_days with the rulebook limit.
- This is health data (GDPR art. 9): we recommend storage "none" and keeping only the verdict.
What it checks
- NIF/NIE check letter. The check character is recomputed (mod 23).
- Recency. Issued less than N days ago.
- Holder. Name, number or date of birth match what you expect.
Extracted fields
- Patient name
patient_name - Patient ID number
patient_id - Issue date
issue_date - Doctor
doctor_name - Medical licence number
doctor_license_number - Fit for sport
fit_for_sport - Sport
sport - Restrictions
restrictions - Signature present
signature_present - Stamp present
stamp_present
Where it is used
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@medical_certificate.pdf" \
-F 'options={
"expect": "medical_certificate_sport",
"checks": {
"max_age_days": 180,
"reference_date": "2026-11-14",
"holder": {
"full_name": "Laura Martín Ruiz"
},
"require_signature": true
},
"storage": "none"
}'Try it for free with a ck_test_ key and the file medical_certificate.pdf.
Sample response
Fictitious data. Shortened response.
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "medical_certificate_sport",
"label": "Sports medical certificate",
"confidence": 0.97
},
"verdict": {
"expected": [
"medical_certificate_sport"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: Sports medical certificate."
}
]
},
"fields": {
"patient_name": {
"value": "LAURA MARTÍN RUIZ",
"confidence": 0.99,
"validated": true
},
"patient_id": {
"value": "87654321X",
"confidence": 0.98,
"validated": null
},
"issue_date": {
"value": "2026-07-03",
"confidence": 0.97,
"validated": null
},
"doctor_name": {
"value": "DR. JAVIER ORTEGA",
"confidence": 0.96,
"validated": null
},
"doctor_license_number": {
"value": "282812345",
"confidence": 0.99,
"validated": null
},
"fit_for_sport": {
"value": true,
"confidence": 0.98,
"validated": null
},
"sport": {
"value": "Trail running",
"confidence": 0.97,
"validated": null
},
"signature_present": {
"value": true,
"confidence": 0.96,
"validated": null
},
"stamp_present": {
"value": true,
"confidence": 0.99,
"validated": null
}
},
"checks": [
{
"code": "max_age_days",
"passed": true,
"message": "The issue date is within the limit."
},
{
"code": "holder_match",
"passed": true,
"message": "The holder matches."
},
{
"code": "signature_present",
"passed": true,
"message": "It is signed."
}
],
"warnings": [],
"storage": {
"mode": "none",
"file_deleted_at": "2026-09-29T10:00:02Z",
"expires_at": null
},
"usage": {
"credits": 1,
"pages": 1
}
}FAQ
Does Constaia prove the document is authentic?
No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.
Is a copy of the document kept?
No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.
Other documents
And for the record…
Create your account, copy the test key and validate your first document in five minutes.