Registry entry
Florida Online Voter Registration
Register to vote (or update an existing registration record, or request a replacement voter information card) in Florida through the Florida Department of State, Division of Elections' online system at RegisterToVoteFlorida.gov. The wizard first collects an eligibility attestation and identity fields (Florida driver license/ID number and issue date, or the last four digits of a Social Security number, plus name and date of birth); if the Florida Department of Highway Safety and Motor Vehicles (FLHSMV) can verify that identity against its own records, the application is submitted electronically using the applicant's signature already on file with FLHSMV, otherwise the same collected data prefills a printable Florida Voter Registration Application (DS-DE 39) that must be signed and mailed or delivered to the applicant's county Supervisor of Elections. Both branches collect the same underlying field set modelled here (confirmed by exercising both paths live). Does not submit the application and does not perform the FLHSMV identity-verification check itself; the live registertovoteflorida.gov source is always authoritative (see VERIFICATION.md).
Registry entry
us/fl/doe/online-voter-registration
GovSchema spec v0.3
Machine access
- Schema document
registry/us/fl/doe/online-voter-registration/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/us/fl/doe/online-voter-registration/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
37 fields across 8 steps, read from the published schema.json — names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Reason for Application
-
reasonForApplicationenum requiredThe wizard renders these as three independent checkboxes, but only one was ever observed selectable in a coherent application; modelled as a single choice.
enum: new_registration | record_update_or_change | request_replacement_voter_card
Eligibility
-
usCitizenboolean requiredOnly U.S. citizens may register or vote in Florida. If false, the applicant is not eligible and the flow ends.
-
notAFelonAttestationboolean requiredA required affirmation checkbox; the wizard did not allow progress past Step 1 while unchecked. Notice: it is a 3rd-degree felony to submit false information (max penalties $5,000 and/or 5 years).
classification: sensitive-pii -
mentalIncapacityAttestationboolean requiredA required affirmation checkbox; the wizard did not allow progress past Step 1 while unchecked.
classification: sensitive-pii
Personal Identification Information
-
isDLUnavailableboolean optionalWhen checked, flDlNumber and dlIssueDate are not requested and the applicant must instead use the paper option and provide ssnLast4 (or check isSSNUnavailable if neither was ever issued).
-
isSSNUnavailableboolean optionalI have never been issued a social security number.
-
flDlNumberstring optionalUse the most currently issued Florida driver license or Florida identification card number, issued by FLHSMV. Format confirmed live: one letter followed by 12 digits (the wizard's own 'Example — Florida Driver License and Identification Card' popup shows 'D123-456-83-789-0', displayed with separators but stored as 13 characters; the input silently truncated a 14th character typed during this review).
patternclassification: sensitive-pii -
dlIssueDatedate optionalCard issued (ISS) date
classification: pii -
ssnLast4string optionalThe last four digits of your Social Security Number
patternclassification: sensitive-pii -
lastNamestring requiredEnter your name EXACTLY as it appears on your FL DL/ID card with the most recent issue date. If you only have one name, use this field.
length: 1–50classification: pii -
firstNamestring optionalLabelled '(If applicable)' — left blank by an applicant who has only one name (recorded in lastName).
length: 0–50classification: pii -
middleNamestring optionalMiddle Name
length: 0–50classification: pii -
nameSuffixenum optionalSuffix
enum: 11 values -
dateOfBirthdate requiredDate of Birth (DOB)
classification: sensitive-pii
Political Party Preference and Legal Residential Address
-
partyAffiliationenum requiredThe live wizard enforces a selection (shown with a red '*Required' hint if left blank) even though the DS-DE 39 paper form itself does not list this among its 'must be completed' rows (1-6, 15) and states an applicant who registers for the first time without choosing a party is registered No Party Affiliation (NPA) — this schema follows the online wizard's stricter, actually-enforced behaviour (see VERIFICATION.md). Values are the exact option codes read from the live
enum: 18 valuesclassification: sensitive-pii -
residentialAddressstring requiredMust not be a P.O. Box or business address, and must be in Florida. The live field is a single geocoded address-autocomplete search box (type-ahead over USPS-style candidates), not separate street/city/ZIP inputs; selecting a suggestion also silently derives residentialCounty and the city/ZIP shown on the Review Page — those are not independently editable fields in the wizard (see VERIFICATION.md).
length: 1–200classification: pii -
residentialCountystring optionalNot independently entered: the wizard derives this automatically from the selected residentialAddress (confirmed live — selecting a Titusville, FL address populated 'Brevard' with no separate county input). Included because the printed DS-DE 39 form prints it as one of the six required rows.
-
mailingAddressSameAsResidentialboolean requiredMailing address is the same as residential address.
-
mailingAddressCountryTypeenum optionalThe wizard shows a 'United States' / 'International' toggle before the mailing-address fields once mailingAddressSameAsResidential is No. Only the United States branch (mailingAddressState + mailingAddress) was exercised in this review; the International branch's exact field set was seen to exist but not independently field-verified (see VERIFICATION.md).
enum: united_states | international -
mailingAddressStateenum optionalSame US state/territory/military-postal-code option set observed for formerAddressState (not independently re-verified as identical; both render from what appears to be the same shared component — see VERIFICATION.md).
enum: 62 values -
mailingAddressstring optionalMailing address
length: 0–200classification: pii
Former Address and Name Where You Were Last Registered to Vote
-
formerAddressStateenum optionalFormer Address Where You Were Last Registered to Vote — State
enum: 62 values -
formerAddressstring optionalFormer Address Where You Were Last Registered to Vote
length: 0–200classification: pii -
formerFirstNamestring optionalFormer First Name
length: 0–50classification: pii -
formerMiddleNamestring optionalFormer Middle Name
length: 0–50classification: pii -
formerLastNamestring optionalFormer Last Name
length: 0–50classification: pii
Personal Information
-
genderenum optionalGender
enum: male | femaleclassification: sensitive-pii -
raceEthnicityenum optionalRace/Ethnicity
enum: 7 valuesclassification: sensitive-pii -
phoneNumberstring optionalOptional per the DS-DE 39 printed form ('Phone no. (optional)').
length: 0–20classification: pii -
requestSampleBallotByEmailboolean optionalEmail me a sample ballot at:
-
publicEmailAddressstring optionalUnder Florida law, e-mail addresses collected for this purpose are public records.
patternclassification: pii -
emailConfirmationstring optionalConfirm Email Address
patternclassification: pii -
placeOfBirthstring optionalState or Country of Birth
length: 0–60classification: pii
Assistance/Volunteer Services and Military/Overseas Status
-
votingAssistanceRequiredboolean optionalI will need help voting.
-
pollWorkerVolunteerboolean optionalI would like to be a poll worker or election worker.
-
militaryOverseasStatusenum optionalSelecting any of the three affirmative options revealed no further fields in this review (e.g. no separate APO/FPO ballot-delivery address capture) — see VERIFICATION.md.
enum: active_duty_uniformed_services_or_merchant_marine_member | spouse_or_dependent_of_active_duty_member | resides_outside_us_but_us_citizen | none_of_the_above
Review and Oath
-
oathAffirmedboolean requiredThe submission-time attestation preceding the signature (electronic, using the signature already on file with FLHSMV, or a wet signature on the printed DS-DE 39). It is a 3rd degree felony under state and federal law to falsely swear or affirm or otherwise submit false information.
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-02
The document was derived by directly operating the live registertovoteflorida.gov wizard end-to-end with a headless, real browser. It remains draft, not verified — see "What was not done" below.
Sources examined
- Document
(id, version):us/fl/doe/online-voter-registration/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Florida Department of State, Division of Elections ("FL DOE").
https://www.registertovoteflorida.gov/— the Florida Online Voter Registration System (OVR). This is an Angular single-page application; a plaincurl/static fetch returns only an empty shell (confirmed — see "Method" below), so the entry page, its five expandable info panels ("How to submit an online application", "Who is eligible to register", "How to pre-register before you turn 18", "When to register", "What browsers to use"), and all three wizard steps were read by rendering the page with a real (non-headless-detected) Chromium instance and extractingdocument.body.innerText, matching the discipline ingov-source-fidelity-verificationbut for a JS-rendered app rather than server HTML.- Step 1 (
/eligibilityreactive) — Reason for Application (3 checkboxes), Eligibility (US citizenship radio + two affirmation checkboxes), and, revealed after those are filled, Personal Identification Information (FLHSMV DL/ID number + issue date, or last-4 SSN, name, DOB). The exact DL number format was confirmed via the page's own "Example — Florida Driver License and Identification Card" popup image (D123-456-83-789-0, displayed with dashes but stored as 1 letter + 12 digits — confirmed by observing the live input silently truncate a deliberately-too-long typed value). - Step 2 (
/rdfromvalidationwhen FLHSMV verification of mock data fails, routing to the "Start Paper Application" branch) — Political Party Preference, Legal Residential Address, Mailing Address, Former Address/Name Where Last Registered, Personal Information (gender, race/ethnicity, phone, sample-ballot email, place of birth), Assistance/Volunteer Services, Military/Overseas Status. All<input>/<select>DOM nodes on this page were enumerated programmatically (ids, types, option lists), not just their rendered label text. - Review Page (
/reviewform) — confirmed that selecting a residential address (a single autocomplete field) silently derives the county (e.g. selecting a Titusville, FL address populated "Brevard" with no separate county input anywhere in the DOM). - Prefilled application (
/appform) — the live-rendered "Florida Voter Registration Application Instructions and Form (DS-DE 39, R1S-2.040, F.A.C.)(eff. 04/24/2024)", populated with the same mock data entered in Steps 1-2. This is the strongest single source: it exposes the exact paper-form row numbering ("Rows 1 – 6 and 15 must be completed for an application to be processed"), the full felony/mental-incapacity/oath statutory language, and the closed-primary/NPA-default party-affiliation rule, letting this review cross-check the wizard's own field set against the state's published form of record in one page. - Retrieved / reviewed: 2026-07-02.
- Reviewer: GovSchema Engineering (Standards Engineer — initial authoring source review).
Method
curl/static HTTP fetch of registertovoteflorida.gov (and its Wayback Machine snapshot) returns a near-empty Angular shell with no field content — this application is entirely client-rendered. This review therefore drove a real, headless Chromium instance (playwright-core, installed to a scratch directory outside the repo, launched with the system libraries at /paperclip/chrome-sysroot per this environment's browser-screenshot convention) with a realistic desktop user agent, and:
- Loaded the home page and expanded all five info panels to capture their full text.
- Clicked "Register or Update" into Step 1, filled Reason for Application and Eligibility with mock affirmative answers, and captured the dynamically-revealed Personal Identification Information section.
- Filled mock FLHSMV identity data (a syntactically well-formed but fictitious DL number, SSN-last-4, name, DOB) and advanced — FLHSMV could not verify this mock identity (as expected; no real DL/ID exists to verify against), so the wizard offered "Edit", "Start Paper Application", or "Exit". This review clicked "Start Paper Application" to continue observing the field set, since the source's own "How to submit an online application" panel states the electronic-submit and paper-prefill paths differ only in the final action, not the data collected.
- Filled Step 2 (party affiliation, address via the live USPS-style autocomplete, mailing/former-address toggles, personal information, assistance/military questions) and advanced to the Review Page, then to the final prefilled DS-DE 39 print view.
- Stopped there. No "Print" or "Submit" action was invoked, and no real personal data was used at any point.
What was confirmed against the source
| Source element | Field(s) | |---|---| | "Reason for Application" (3 checkboxes) | reasonForApplication | | "Are you a citizen of the United States of America?" | usCitizen | | "I affirm that I am not a convicted felon..." | notAFelonAttestation | | "I affirm that I have not been adjudicated mentally incapacitated..." | mentalIncapacityAttestation | | "I have never been issued a Florida DL or Florida ID card." / "...a social security number." | isDLUnavailable, isSSNUnavailable | | "Florida DL or Florida ID card number (DLN):" / "Card issued (ISS) date:" / "...last four digits of your Social Security Number:" | flDlNumber, dlIssueDate, ssnLast4 | | "Last Name:" / "First Name: (If applicable)" / "Middle Name: (If applicable)" / "Suffix: (If applicable)" / "Date of Birth (DOB):" | lastName, firstName, middleName, nameSuffix, dateOfBirth | | "Party Affiliation *" (18-option <select>) | partyAffiliation | | "Address:" (Legal Residential Address, autocomplete) | residentialAddress | | Review Page auto-derived "County: Brevard" | residentialCounty | | "Mailing address is the same as residential address." + "United States"/"International" toggle + "State :"/"Address:" | mailingAddressSameAsResidential, mailingAddressCountryType, mailingAddressState, mailingAddress | | "Former Address Where You Were Last Registered to Vote" (State + Address) | formerAddressState, formerAddress | | "Former Name Where You Were Last Registered to Vote" | formerFirstName, formerMiddleName, formerLastName | | "Gender" / "Race/Ethnicity" / "Phone Number" | gender, raceEthnicity, phoneNumber | | "Email me a sample ballot at:" → reveals "Email" + "Confirm Email Address" | requestSampleBallotByEmail, publicEmailAddress, emailConfirmation | | "State or Country of Birth" | placeOfBirth | | "I will need help voting." / "I would like to be a poll worker or election worker." | votingAssistanceRequired, pollWorkerVolunteer | | "I am one of the following:" (4 radio options) | militaryOverseasStatus | | DS-DE 39 Row 15 Oath text | oathAffirmed |
Honesty flags (deliberate, recorded rather than glossed over)
- The FLHSMV-verified electronic-submission branch was not independently exercised. No real Florida DL/ID exists to verify against in this environment, so FLHSMV verification of the mock identity failed and the wizard routed to "Start Paper Application" rather than the fully electronic path. The Step 2/3 field set is the same underlying Angular form component tree in both branches (confirmed by inspecting DOM element ids, not just rendered text, before and after the branch point) and the source's own "How to submit an online application" panel describes the difference as which action concludes the process (electronic submit vs. print-sign-mail), not a different data model — but this is inference from the one branch actually walked, not independent observation of the other.
residentialAddressandmailingAddressare modelled as single autocomplete strings, not decomposed street/unit/city/ZIP fields. The live DOM exposes exactly one editable<input>for each — a USPS-style geocoded address search — even though the resulting prefilled DS-DE 39 prints separate Street/Unit/City/County/Zip cells. Modelling separate city/ZIP/unit fields here would imply the applicant enters them independently, which the live wizard does not support;residentialCountyis included (system-derived,required: false) because the paper form prints it as one of its six mandatory rows, but it is explicitly documented as non-entered.mailingAddressCountryType'sinternationalbranch was seen to exist but not field-verified. The "United States"/"International" toggle was observed; only the "United States" sub-form (mailingAddressState+mailingAddress) was filled and advanced past. The International branch's exact field set (e.g. a free-text country field vs. a country<select>) is unconfirmed.mailingAddressState's option list is assumed identical toformerAddressState's. Both selects were observed to share the same 53-value US-state/territory/military-postal-code set (AA/AE/AP+FM/MH/PW) and appear to render from the same Angular component, but the mailing-address variant's option list was not independently re-enumerated value-by-value.militaryOverseasStatusreveals no further fields. Selecting each of the three affirmative radio options (active-duty member, spouse/dependent, resides-outside-US-citizen) was tried; none revealed an APO/FPO address, ballot-delivery-method, or other UOCAVA-specific follow-up field in this wizard. This is recorded as observed behaviour, not a claim that Florida's UOCAVA process has no such follow-up elsewhere (e.g. a separate FPCA process is out of scope for this schema).partyAffiliationmodelled asrequired: true, diverging from the printed DS-DE 39's own "must be completed" row list (1-6, 15), which excludes Row 11 (party affiliation). The live wizard visibly enforces a selection (a red "*Required" hint appears beneath the<select>if left blank) even though the paper form and its own guidance text state a first-time registrant who does not choose a party is registered No Party Affiliation (NPA) by default. This schema follows the wizard's actually- enforced behaviour over the paper form's looser statement, on the principle that the schema should describe what the live system requires an applicant to submit.- Reason-for-application checkboxes modelled as a single enum, not three independent booleans, because a coherent application logically selects exactly one reason; the underlying DOM does allow checking more than one simultaneously (observed while iterating on this schema), which this schema treats as a source UI looseness rather than a modelled possibility.
- Fee/deadline/statutory citation text (e.g. the 29-day registration deadline, the 3rd-degree-felony penalty) is recorded in field/document descriptions for context only and is not itself validated data — the same convention used throughout this registry for fee schedules and penalty notices.
Relationship to other Florida schemas
This is the first us/fl/doe/* (Division of Elections) schema, alongside the existing us/fl/doc/* (Division of Corporations/Sunbiz), us/fl/doh/* (Department of Health), and us/fl/flhsmv/* schemas — the authority-slug convention (division-specific slug under the shared us/fl/* state namespace, not the parent Department of State) follows the precedent recorded in us/fl/doc/llc-formation's own verification notes. It also closes the last open candidate slot in the National ID & Civic Documents vertical's voter-registration coverage.
Conformance
No conformance/us/fl/doe/online-voter-registration/1.0.0/ packet is included in this version; a future revision should add one exercising the eligible, new-registration, same-mailing-address path once the schema is re-reviewed against a real FLHSMV-verified run.
View the raw record (VERIFICATION.md)
Version history
-
1.0.0draftlatestthis pagehas verification recordschema.json
Independent and non-affiliated
GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Florida Department of State, Division of Elections or any government. The authoritative source is always the live government form and its official instructions.