Skip to content
Constaia
medical_certificate_sport

Sports 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
Medical certificate
Review
SpecimenTry it in the demo

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 namepatient_name
  • Patient ID numberpatient_id
  • Issue dateissue_date
  • Doctordoctor_name
  • Medical licence numberdoctor_license_number
  • Fit for sportfit_for_sport
  • Sportsport
  • Restrictionsrestrictions
  • Signature presentsignature_present
  • Stamp presentstamp_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.

200 OK · application/json
{
  "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.