Register record·API·FRUNVERIFIED
R
Résultats des législatives pour dataviz - 1er tour
Trust score
How is this computed?0
poor
Weighted across five axes. Tap a ring for what it measures.
Data schema (53 fields)
Filterable via the API (51)
sequencetypeanneetourdepartementcommuneuniq_bdvcode_cantoncode_circonscriptionindicatifnb_inscritsnombre_d_abstentionsnombre_de_votantsnombre_de_votants_d_apres_les_feuilles_d_emargementblancsnb_nulsnb_exprimesnombre_de_candidatscode_depot_du_candidatanombre_de_voix_du_candidatacode_depot_du_candidatbnombre_de_voix_du_candidatbcode_depot_du_candidatcnombre_de_voix_du_candidatccode_depot_du_candidatdnombre_de_voix_du_candidatdcode_depot_du_candidatenombre_de_voix_du_candidatecode_depot_du_candidatfnombre_de_voix_du_candidatfcode_depot_du_candidatgnombre_de_voix_du_candidatgcode_depot_du_candidathnombre_de_voix_du_candidathcode_depot_du_candidatinombre_de_voix_du_candidaticode_depot_du_candidatjnombre_de_voix_du_candidatjcode_depot_du_candidatknombre_de_voix_du_candidatkcode_depot_du_candidatlnombre_de_voix_du_candidatlcode_depot_du_candidatnombre_de_voix_du_candidatcode_depot_du_candidat0nombre_de_voix_du_candidat0valuecandidatvoixnom_lieuadresse
Click a field to see example values.
| Fill | Field | Type | Description |
|---|---|---|---|
| 100% | sequence | int | — |
| 100% | type | text | — |
| 100% | anneeAnnée | text | — |
| 100% | tour | int | — |
| 100% | departementDépartement | int | — |
| 100% | communeCommune | int | — |
| 100% | uniq_bdvNuméro du bureau | text | — |
| 100% | code_cantonCode canton | int | — |
| 100% | code_circonscriptionCode circonscription | text | — |
| 100% | indicatif | text | — |
| 100% | nb_inscritsNombre d'inscrits | int | — |
| 100% | nombre_d_abstentionsNombre d abstentions | int | — |
| 100% | nombre_de_votantsNombre de votants | int | — |
| 100% | nombre_de_votants_d_apres_les_feuilles_d_emargementNombre de votants d'après les feuilles d'émargement | int | — |
| 100% | blancsNombre de bulletins blancs | int | — |
| 100% | nb_nulsNombre de bulletins nuls | int | — |
| 100% | nb_exprimesNombre d'exprimés | int | — |
| 100% | nombre_de_candidatsNombre de candidats | int | — |
| 100% | code_depot_du_candidataCode dépôt du candidatA | int | — |
| 100% | nombre_de_voix_du_candidataNombre de voix du candidata | int | — |
| 100% | code_depot_du_candidatbCode dépôt du candidatB | int | — |
| 100% | nombre_de_voix_du_candidatbNombre de voix du candidatb | int | — |
| 100% | code_depot_du_candidatcCode dépôt du candidatC | int | — |
| 100% | nombre_de_voix_du_candidatcNombre de voix du candidatc | int | — |
| 100% | code_depot_du_candidatdCode dépôt du candidatD | int | — |
| 100% | nombre_de_voix_du_candidatdNombre de voix du candidatd | int | — |
| 100% | code_depot_du_candidateCode dépôt du candidatE | int | — |
| 100% | nombre_de_voix_du_candidateNombre de voix du candidate | int | — |
| 100% | code_depot_du_candidatfCode dépôt du candidatF | int | — |
| 100% | nombre_de_voix_du_candidatfNombre de voix du candidatf | int | — |
| 100% | code_depot_du_candidatgCode dépôt du candidatG | int | — |
| 100% | nombre_de_voix_du_candidatgNombre de voix du candidatg | int | — |
| 100% | code_depot_du_candidathCode dépôt du candidatH | int | — |
| 100% | nombre_de_voix_du_candidathNombre de voix du candidath | int | — |
| 100% | code_depot_du_candidatiCode dépôt du candidatI | int | — |
| 100% | nombre_de_voix_du_candidatiNombre de voix du candidati | int | — |
| 100% | code_depot_du_candidatjCode dépôt du candidatJ | int | — |
| 100% | nombre_de_voix_du_candidatjNombre de voix du candidatj | int | — |
| 100% | code_depot_du_candidatkCode dépôt du candidatK | int | — |
| 100% | nombre_de_voix_du_candidatkNombre de voix du candidatk | int | — |
| — | code_depot_du_candidatlCode dépôt du candidatL | int | — |
| — | nombre_de_voix_du_candidatlNombre de voix du candidatl | int | — |
| — | code_depot_du_candidatCode dépôt du candidat | int | — |
| — | nombre_de_voix_du_candidatNombre de voix du candidat | int | — |
| — | code_depot_du_candidat0Code dépôt du candidat | int | — |
| — | nombre_de_voix_du_candidat0Nombre de voix du candidat | int | — |
| — | value | text | — |
| — | candidat | text | — |
| — | voix | int | — |
| — | geo_pointGeo point | geo_point_2d | — |
| 99.4% | geo_shapeShape | geo_shape | — |
| 100% | nom_lieuNOM | text | — |
| 100% | adresse | text | — |
Schema captured from opendatasoft 2 hours ago.
Query the data
Pick columns and a sort, then fetch a live preview straight from the source. Choose an API-filterable column (marked ▾) under “Where” to pick from its list of values.
=
Sample data (5 records)
Record 1tour: 1 · type: LG
{
"tour": 1,
"type": "LG",
"voix": 23,
"annee": "2022",
"value": "89:23",
"blancs": 4,
"adresse": "5 rue du Général Hoche",
"commune": 555,
"nb_nuls": 2,
"candidat": "Cathy Marsal",
"nom_lieu": "École élémentaire Alfred de Musset",
"sequence": 168,
"uniq_bdv": "163",
"geo_point": {
"lat": 43.62335697981649,
"lon": 1.4303122360559326
},
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
1.4277880848,
43.6225960974
],
[
1.4283465609,
43.622611925
],
[
1.4283106456,
43.6236041315
],
[
1.4286140108,
43.6236955014
],
[
1.4282139092,
43.6240886824
],
[
1.4309371803,
43.6255280599
],
[
1.4314342009,
43.6248676169
],
[
1.4318954468,
43.6240812863
],
[
1.4323593727,
43.6232031953
],
[
1.4327829203,
43.622324782
],
[
1.4307528348,
43.6217020982
],
[
1.4303861203,
43.6220094921
],
[
1.4299792689,
43.622043134
],
[
1.4296006407,
43.6221053873
],
[
1.4277748611,
43.6220103327
],
[
1.4277880848,
43.6225960974
]
]
]
},
"properties": {}
},
"indicatif": "I",
"code_canton": 16,
"departement": 31,
"nb_exprimes": 249,
"nb_inscrits": 690,
"nombre_de_votants": 255,
"nombre_de_candidats": 11,
"code_circonscription": "1",
"nombre_d_abstentions": 435,
"code_depot_du_candidat": null,
"code_depot_du_candidat0": null,
"code_depot_du_candidata": 24,
"code_depot_du_candidatb": 128,
"code_depot_du_candidatc": 17,
"code_depot_du_candidatd": 89,
"code_depot_du_candidate": 102,
"code_depot_du_candidatf": 109,
"code_depot_du_candidatg": 74,
"code_depot_du_candidath": 120,
"code_depot_du_candidati": 41,
"code_depot_du_candidatj": 68,
"code_depot_du_candidatk": 126,
"code_depot_du_candidatl": null,
"nombre_de_voix_du_candidat": null,
"nombre_de_voix_du_candidat0": null,
"nombre_de_voix_du_candidata": 50,
"nombre_de_voix_du_candidatb": 6,
"nombre_de_voix_du_candidatc": 1,
"nombre_de_voix_du_candidatd": 23,
"nombre_de_voix_du_candidate": 8,
"nombre_de_voix_du_candidatf": 7,
"nombre_de_voix_du_candidatg": 15,
"nombre_de_voix_du_candidath": 5,
"nombre_de_voix_du_candidati": 127,
"nombre_de_voix_du_candidatj": 7,
"nombre_de_voix_du_candidatk": 0,
"nombre_de_voix_du_candidatl": null,
"nombre_de_votants_d_apres_les_feuilles_d_emargement": 255
}Record 2tour: 1 · type: LG
{
"tour": 1,
"type": "LG",
"voix": 33,
"annee": "2022",
"value": "124:33",
"blancs": 8,
"adresse": "44 rue du Tchad",
"commune": 555,
"nb_nuls": 3,
"candidat": "Fatiha Agag-Boudjahlat",
"nom_lieu": "École élémentaire Patte d'Oie",
"sequence": 122,
"uniq_bdv": "117",
"geo_point": {
"lat": 43.59472499762239,
"lon": 1.4139948145188082
},
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
1.4093248122,
43.594372872
],
[
1.4099971361,
43.5959827134
],
[
1.4112575221,
43.5960389795
],
[
1.4125593536,
43.5960243649
],
[
1.4138042568,
43.5959190885
],
[
1.4155737316,
43.5959651256
],
[
1.416233908,
43.5959450348
],
[
1.4178508311,
43.5962744386
],
[
1.4188059252,
43.5965470885
],
[
1.4192372217,
43.5966403999
],
[
1.4194348771,
43.596619893
],
[
1.4193163202,
43.596108576
],
[
1.4188916639,
43.5959933664
],
[
1.4190665011,
43.5955830202
],
[
1.4191878029,
43.5953907419
],
[
1.4190086732,
43.5943813088
],
[
1.4192694718,
43.5940865104
],
[
1.415451755,
43.5935681607
],
[
1.4114566554,
43.5930355445
],
[
1.4104776848,
43.5932137266
],
[
1.4093263619,
43.5934234534
],
[
1.4079666805,
43.5937277342
],
[
1.4078559314,
43.5941196932
],
[
1.4093380915,
43.5940918705
],
[
1.4093248122,
43.594372872
]
]
]
},
"properties": {}
},
"indicatif": "I",
"code_canton": 15,
"departement": 31,
"nb_exprimes": 663,
"nb_inscrits": 1462,
"nombre_de_votants": 674,
"nombre_de_candidats": 14,
"code_circonscription": "4",
"nombre_d_abstentions": 788,
"code_depot_du_candidat": 9,
"code_depot_du_candidat0": 124,
"code_depot_du_candidata": 81,
"code_depot_du_candidatb": 6,
"code_depot_du_candidatc": 45,
"code_depot_du_candidatd": 22,
"code_depot_du_candidate": 96,
"code_depot_du_candidatf": 116,
"code_depot_du_candidatg": 4,
"code_depot_du_candidath": 33,
"code_depot_du_candidati": 40,
"code_depot_du_candidatj": 65,
"code_depot_du_candidatk": 93,
"code_depot_du_candidatl": 13,
"nombre_de_voix_du_candidat": 121,
"nombre_de_voix_du_candidat0": 33,
"nombre_de_voix_du_candidata": 49,
"nombre_de_voix_du_candidatb": 0,
"nombre_de_voix_du_candidatc": 15,
"nombre_de_voix_du_candidatd": 3,
"nombre_de_voix_du_candidate": 3,
"nombre_de_voix_du_candidatf": 17,
"nombre_de_voix_du_candidatg": 0,
"nombre_de_voix_du_candidath": 373,
"nombre_de_voix_du_candidati": 2,
"nombre_de_voix_du_candidatj": 44,
"nombre_de_voix_du_candidatk": 3,
"nombre_de_voix_du_candidatl": 0,
"nombre_de_votants_d_apres_les_feuilles_d_emargement": 674
}Record 3tour: 1 · type: LG
{
"tour": 1,
"type": "LG",
"voix": 42,
"annee": "2022",
"value": "86:42",
"blancs": 3,
"adresse": "7 rue du Poitou",
"commune": 555,
"nb_nuls": 4,
"candidat": "Thomas Barkats",
"nom_lieu": "École élémentaire Maurice Jacquier",
"sequence": 93,
"uniq_bdv": "89",
"geo_point": {
"lat": 43.57077112585964,
"lon": 1.418829904415391
},
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
1.4194059697,
43.5736513992
],
[
1.4197697726,
43.5728397323
],
[
1.4233651919,
43.5718233242
],
[
1.4237820813,
43.5720471341
],
[
1.4243089646,
43.5721412673
],
[
1.424577516,
43.5693797865
],
[
1.4229002965,
43.5691202642
],
[
1.4219771722,
43.568901818
],
[
1.4211794783,
43.5687354745
],
[
1.4203778528,
43.5685700351
],
[
1.4191373709,
43.5684284737
],
[
1.4180327604,
43.5684214062
],
[
1.4169382768,
43.5685165934
],
[
1.4159838434,
43.568727387
],
[
1.4149694247,
43.5690304088
],
[
1.4144355385,
43.5692247444
],
[
1.414138534,
43.5693301869
],
[
1.4132440594,
43.5697013419
],
[
1.4124529267,
43.570290003
],
[
1.4117955124,
43.5708967756
],
[
1.4118625571,
43.5711887379
],
[
1.4121171481,
43.5711349922
],
[
1.4130156513,
43.5708414578
],
[
1.4133319263,
43.5704154402
],
[
1.4153014712,
43.5698600268
],
[
1.4162195682,
43.5705733166
],
[
1.4172876881,
43.5713493075
],
[
1.4124285257,
43.572625801
],
[
1.4128346771,
43.5735430818
],
[
1.4145081289,
43.5731233986
],
[
1.4146515519,
43.5734434163
],
[
1.417310736,
43.5727270605
],
[
1.418413607,
43.572430416
],
[
1.4194059697,
43.5736513992
]
]
]
},
"properties": {}
},
"indicatif": "I",
"code_canton": 20,
"departement": 31,
"nb_exprimes": 312,
"nb_inscrits": 920,
"nombre_de_votants": 319,
"nombre_de_candidats": 12,
"code_circonscription": "9",
"nombre_d_abstentions": 601,
"code_depot_du_candidat": null,
"code_depot_du_candidat0": null,
"code_depot_du_candidata": 72,
"code_depot_du_candidatb": 66,
"code_depot_du_candidatc": 46,
"code_depot_du_candidatd": 28,
"code_depot_du_candidate": 57,
"code_depot_du_candidatf": 5,
"code_depot_du_candidatg": 86,
"code_depot_du_candidath": 78,
"code_depot_du_candidati": 19,
"code_depot_du_candidatj": 79,
"code_depot_du_candidatk": 123,
"code_depot_du_candidatl": 100,
"nombre_de_voix_du_candidat": null,
"nombre_de_voix_du_candidat0": null,
"nombre_de_voix_du_candidata": 3,
"nombre_de_voix_du_candidatb": 0,
"nombre_de_voix_du_candidatc": 10,
"nombre_de_voix_du_candidatd": 138,
"nombre_de_voix_du_candidate": 68,
"nombre_de_voix_du_candidatf": 3,
"nombre_de_voix_du_candidatg": 42,
"nombre_de_voix_du_candidath": 8,
"nombre_de_voix_du_candidati": 15,
"nombre_de_voix_du_candidatj": 5,
"nombre_de_voix_du_candidatk": 0,
"nombre_de_voix_du_candidatl": 20,
"nombre_de_votants_d_apres_les_feuilles_d_emargement": 319
}Record 4tour: 1 · type: LG
{
"tour": 1,
"type": "LG",
"voix": 11,
"annee": "2022",
"value": "44:11",
"blancs": 5,
"adresse": "7 chemin d'Audibert",
"commune": 555,
"nb_nuls": 3,
"candidat": "Nicolas Karasiak",
"nom_lieu": "École élémentaire Ernest Renan",
"sequence": 198,
"uniq_bdv": "191",
"geo_point": {
"lat": 43.63085133486293,
"lon": 1.4408340192519609
},
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
1.443419367,
43.6289401536
],
[
1.442846504,
43.6270071016
],
[
1.442832684,
43.6265730345
],
[
1.4427979205,
43.6259850236
],
[
1.4428262697,
43.625361704
],
[
1.4427636213,
43.6248908223
],
[
1.4428568781,
43.6247964919
],
[
1.4371883135,
43.6261404042
],
[
1.43712718,
43.6261549143
],
[
1.4371386077,
43.6262172692
],
[
1.4372354093,
43.6267833523
],
[
1.4374360774,
43.6282215505
],
[
1.4378172594,
43.6299601363
],
[
1.4381336393,
43.6311725834
],
[
1.4390837118,
43.634907694
],
[
1.4390462605,
43.6361631563
],
[
1.4390988941,
43.6365863676
],
[
1.4415364574,
43.6366026464
],
[
1.444121952,
43.6366705167
],
[
1.4440272527,
43.6361224051
],
[
1.4439287276,
43.6359163145
],
[
1.4437416338,
43.6344890257
],
[
1.4437875963,
43.6335063589
],
[
1.4437977651,
43.6329575436
],
[
1.4438316988,
43.6318020672
],
[
1.4435324286,
43.6318251546
],
[
1.4434836115,
43.6308121177
],
[
1.4434810847,
43.630423402
],
[
1.4434066787,
43.6299252486
],
[
1.443419367,
43.6289401536
]
]
]
},
"properties": {}
},
"indicatif": "I",
"code_canton": 22,
"departement": 31,
"nb_exprimes": 467,
"nb_inscrits": 1096,
"nombre_de_votants": 475,
"nombre_de_candidats": 14,
"code_circonscription": "02",
"nombre_d_abstentions": 621,
"code_depot_du_candidat": 27,
"code_depot_du_candidat0": 114,
"code_depot_du_candidata": 99,
"code_depot_du_candidatb": 16,
"code_depot_du_candidatc": 53,
"code_depot_du_candidatd": 62,
"code_depot_du_candidate": 103,
"code_depot_du_candidatf": 113,
"code_depot_du_candidatg": 2,
"code_depot_du_candidath": 64,
"code_depot_du_candidati": 69,
"code_depot_du_candidatj": 87,
"code_depot_du_candidatk": 107,
"code_depot_du_candidatl": 44,
"nombre_de_voix_du_candidat": 235,
"nombre_de_voix_du_candidat0": 16,
"nombre_de_voix_du_candidata": 20,
"nombre_de_voix_du_candidatb": 8,
"nombre_de_voix_du_candidatc": 1,
"nombre_de_voix_du_candidatd": 7,
"nombre_de_voix_du_candidate": 103,
"nombre_de_voix_du_candidatf": 0,
"nombre_de_voix_du_candidatg": 21,
"nombre_de_voix_du_candidath": 4,
"nombre_de_voix_du_candidati": 0,
"nombre_de_voix_du_candidatj": 38,
"nombre_de_voix_du_candidatk": 3,
"nombre_de_voix_du_candidatl": 11,
"nombre_de_votants_d_apres_les_feuilles_d_emargement": 475
}Record 5tour: 1 · type: LG
{
"tour": 1,
"type": "LG",
"voix": 119,
"annee": "2022",
"value": "41:119",
"blancs": 1,
"adresse": "4 allée du Vivarais",
"commune": 555,
"nb_nuls": 3,
"candidat": "Hadrien Clouet",
"nom_lieu": "Groupe Scolaire Château d'Ancely",
"sequence": 183,
"uniq_bdv": "178",
"geo_point": {
"lat": 43.60956286920421,
"lon": 1.39422665305421
},
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
1.3996467639,
43.6043488661
],
[
1.3978247957,
43.604894281
],
[
1.3928480617,
43.6062093388
],
[
1.3896159253,
43.6077355508
],
[
1.3868468488,
43.6092681365
],
[
1.3881819805,
43.6093989877
],
[
1.3882971723,
43.6100523293
],
[
1.3886468703,
43.6102865143
],
[
1.3885729059,
43.610544064
],
[
1.3879990491,
43.6111703179
],
[
1.3878727313,
43.6118857519
],
[
1.387319767,
43.6124830214
],
[
1.3876764085,
43.6129458129
],
[
1.3881200011,
43.6132016179
],
[
1.3891030032,
43.6133568068
],
[
1.3892652832,
43.6135688604
],
[
1.3889429868,
43.614076651
],
[
1.3888121372,
43.614709081
],
[
1.3893312433,
43.6153944793
],
[
1.3897049518,
43.6157573422
],
[
1.3897390663,
43.6159582364
],
[
1.3895324067,
43.6163227899
],
[
1.3894155057,
43.6165215806
],
[
1.3895421567,
43.6166999038
],
[
1.3899346989,
43.6167578605
],
[
1.390353526,
43.6168161835
],
[
1.3906797794,
43.6169304557
],
[
1.3907440696,
43.6169504591
],
[
1.3909394048,
43.6170152134
],
[
1.3912548067,
43.6170100581
],
[
1.3924352047,
43.6168308307
],
[
1.3926652502,
43.6168244847
],
[
1.393313357,
43.6162575692
],
[
1.394346092,
43.6154483757
],
[
1.3940909707,
43.614782865
],
[
1.3939248405,
43.6142262226
],
[
1.3931674102,
43.6131894364
],
[
1.3925970075,
43.6116737917
],
[
1.3924883543,
43.6111654838
],
[
1.3954019706,
43.6091154317
],
[
1.3969711547,
43.6081791237
],
[
1.3978704713,
43.6080727284
],
[
1.3988893861,
43.6077827648
],
[
1.4013903385,
43.606829127
],
[
1.403933208,
43.6062687795
],
[
1.4066981458,
43.6072191552
],
[
1.4084068604,
43.6073433857
],
[
1.4056210168,
43.6060666774
],
[
1.4035939014,
43.6051352746
],
[
1.4016674045,
43.6043084069
],
[
1.4010368679,
43.6038809185
],
[
1.4001372459,
43.6031876288
],
[
1.4000680569,
43.6039344318
],
[
1.3996467639,
43.6043488661
]
]
]
},
"properties": {}
},
"indicatif": "I",
"code_canton": 16,
"departement": 31,
"nb_exprimes": 277,
"nb_inscrits": 706,
"nombre_de_votants": 281,
"nombre_de_candidats": 11,
"code_circonscription": "01",
"nombre_d_abstentions": 425,
"code_depot_du_candidat": null,
"code_depot_du_candidat0": null,
"code_depot_du_candidata": 24,
"code_depot_du_candidatb": 128,
"code_depot_du_candidatc": 17,
"code_depot_du_candidatd": 89,
"code_depot_du_candidate": 102,
"code_depot_du_candidatf": 109,
"code_depot_du_candidatg": 74,
"code_depot_du_candidath": 120,
"code_depot_du_candidati": 41,
"code_depot_du_candidatj": 68,
"code_depot_du_candidatk": 126,
"code_depot_du_candidatl": null,
"nombre_de_voix_du_candidat": null,
"nombre_de_voix_du_candidat0": null,
"nombre_de_voix_du_candidata": 57,
"nombre_de_voix_du_candidatb": 4,
"nombre_de_voix_du_candidatc": 2,
"nombre_de_voix_du_candidatd": 45,
"nombre_de_voix_du_candidate": 7,
"nombre_de_voix_du_candidatf": 4,
"nombre_de_voix_du_candidatg": 22,
"nombre_de_voix_du_candidath": 3,
"nombre_de_voix_du_candidati": 119,
"nombre_de_voix_du_candidatj": 14,
"nombre_de_voix_du_candidatk": 0,
"nombre_de_voix_du_candidatl": null,
"nombre_de_votants_d_apres_les_feuilles_d_emargement": 280
}Live sample captured at profiling time — values may have changed upstream.
Using the API
Configuration
- Base URL
- https://data.toulouse-metropole.fr/api/explore/v2.1/catalog/datasets/lg-2022-1t-resultats-dataviz
License
- ✓ Redistributable
- ✓ Attribution required
Query examples
curl -s 'https://data.toulouse-metropole.fr/api/explore/v2.1/catalog/datasets/lg-2022-1t-resultats-dataviz/records?limit=20' -H 'Accept: application/json'First 20 records of the dataset as JSON.
Uses the Opendatasoft Explore v2.1 syntax — supports select, where, group_by and order_by.
Rate limits
20 000 req/day
per ipmeasured
observed 2 hours ago
Dataset
Volume & freshness
Records
4.4k
4369
Last upstream update
4 years ago
2022-07-08
License
No license declared upstream.
○ Documentation○ Data dictionary○ Versioning
Source: opendatasoft
Machine-readable & source
Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.