woz-api-nl · Schema

WozApiResponse

Real EstateNetherlandsProperty ValuationWOZ

Properties

Name Type Description
adres stringnull
bag object
wozObject object
kadastraleObjecten arraynull Een WOZ-object kan op meerdere percelen liggen, daarom een lijst.
percelen arraynull Actuele percelen bij dit adres, met oppervlakte uit de Kadastrale Kaart.
woz arraynull Alle bekende peildata, oplopend gesorteerd: het eerste element is de oudste waarde en het laatste de nieuwste. Wil je alleen de actuele waarde, gebruik dan HuidigeWaarde.
huidigeWaarde object
wozStatus stringnull Of er een WOZ-waarde is, en zo niet waarom. "gevonden": woz heeft waarden. "geen_woning": geen waarde, en volgens de BAG heeft het pand geen woonfunctie; alleen van woningen is de WOZ-waarde openbaar.
energielabel object
subsidietoets object
tegoed object
View JSON Schema on GitHub

JSON Schema

woz-api-nl-woz-api-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/woz-api-nl/json-schema/woz-api-nl-woz-api-response-schema.json",
  "title": "WozApiResponse",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/woz-api-nl-openapi.json#/components/schemas/WozApiResponse",
  "type": "object",
  "properties": {
    "adres": {
      "type": [
        "string",
        "null"
      ]
    },
    "bag": {
      "$ref": "#/$defs/BagInfo"
    },
    "wozObject": {
      "$ref": "#/$defs/WozObjectInfo"
    },
    "kadastraleObjecten": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/KadastraalObjectInfo"
      },
      "description": "Een WOZ-object kan op meerdere percelen liggen, daarom een lijst."
    },
    "percelen": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/PerceelInfo"
      },
      "description": "Actuele percelen bij dit adres, met oppervlakte uit de Kadastrale Kaart."
    },
    "woz": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/WozWaarden"
      },
      "description": "Alle bekende peildata, oplopend gesorteerd: het eerste element is de oudste waarde en het\r\nlaatste de nieuwste. Wil je alleen de actuele waarde, gebruik dan HuidigeWaarde."
    },
    "huidigeWaarde": {
      "$ref": "#/$defs/WozWaarden"
    },
    "wozStatus": {
      "type": [
        "string",
        "null"
      ],
      "description": "Of er een WOZ-waarde is, en zo niet waarom. \"gevonden\": woz heeft waarden. \"geen_woning\": geen\r\nwaarde, en volgens de BAG heeft het pand geen woonfunctie; alleen van woningen is de WOZ-waarde\r\nopenbaar. \"geen_waarde\": geen waarde, terwijl de BAG een woonfunctie noemt of het gebruiksdoel\r\nniet bekend is. Beide lege standen zijn een antwoord en geen storing: opnieuw proberen verandert\r\nniets. Een storing geeft altijd een foutstatus (502 of 503), nooit een 200 met een lege woz.",
      "readOnly": true
    },
    "energielabel": {
      "$ref": "#/$defs/EnergielabelInfo"
    },
    "subsidietoets": {
      "$ref": "#/$defs/SubsidietoetsInfo"
    },
    "tegoed": {
      "$ref": "#/$defs/TegoedInfo"
    }
  },
  "additionalProperties": false,
  "$defs": {
    "AanvragenToetsInfo": {
      "type": "object",
      "properties": {
        "moment": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"vooraf\": aanvragen voordat het werk begint; begin pas na het besluit. Sommige regelingen vragen een getekende\r\nofferte bij de aanvraag, andere verbieden tekenen vooraf; zie tekst. \"achteraf\": eerst het werk, dan aanvragen met de\r\nfactuur. \"beide\": de regeling kent twee routes; welke geldt, staat in tekst. \"onbekend\": de regeling zegt het niet\r\nduidelijk; vraag het de gemeente voordat er een offerte getekend wordt."
        },
        "voor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Een stap die voor het werk moet, ook als je achteraf aanvraagt, zoals een woningcode aanvragen; weg als die er niet is."
        },
        "na": {
          "type": [
            "string",
            "null"
          ],
          "description": "Een stap na het werk, zoals gereedmelden met de factuur; weg als die er niet is."
        },
        "tekst": {
          "type": [
            "string",
            "null"
          ],
          "description": "Wat dat in deze gemeente betekent, in gewone woorden; leeg bij onbekend."
        },
        "citaat": {
          "type": [
            "string",
            "null"
          ],
          "description": "De zin uit de regeling of van de pagina van de gemeente waar het op rust."
        },
        "bron": {
          "type": [
            "string",
            "null"
          ],
          "description": "Waar dat citaat staat."
        },
        "nagelezen": {
          "type": [
            "string",
            "null"
          ],
          "description": "Wanneer we dit nalazen (jjjj-mm-dd)."
        }
      },
      "additionalProperties": false,
      "description": "Wanneer je een regeling aanvraagt, met de zin uit de regeling of van de gemeente als bewijs."
    },
    "BagInfo": {
      "type": "object",
      "properties": {
        "adresseerbaarobjectId": {
          "type": [
            "string",
            "null"
          ]
        },
        "nummeraanduidingId": {
          "type": [
            "string",
            "null"
          ]
        },
        "straatnaam": {
          "type": [
            "string",
            "null"
          ]
        },
        "huisnummer": {
          "type": "integer",
          "format": "int32"
        },
        "postcode": {
          "type": [
            "string",
            "null"
          ]
        },
        "woonplaatsnaam": {
          "type": [
            "string",
            "null"
          ]
        },
        "bouwjaar": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Oorspronkelijk bouwjaar van het pand, uit de BAG. Ligt het verblijfsobject in meer panden,\r\ndan het oudste. Leeg als de BAG geen verblijfsobject kent, zoals bij een ligplaats.",
          "format": "int32"
        },
        "oppervlakte": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Gebruiksoppervlakte van het verblijfsobject in m2, uit de BAG.",
          "format": "int32"
        },
        "gebruiksdoelen": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "Gebruiksdoelen van het verblijfsobject volgens de BAG, bijvoorbeeld \"woonfunctie\"."
        },
        "pandIds": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "BAG-identificaties van de panden waar het verblijfsobject in ligt."
        }
      },
      "additionalProperties": false
    },
    "BedragToetsInfo": {
      "type": "object",
      "properties": {
        "doelgroep": {
          "type": [
            "string",
            "null"
          ]
        },
        "maxEuro": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Het maximale bedrag in euro's; weg als de regeling het niet noemt.",
          "format": "int32"
        },
        "percentage": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Het percentage van de kosten; weg als de regeling het niet noemt.",
          "format": "int32"
        },
        "voorwaarde": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "EnergielabelInfo": {
      "type": "object",
      "properties": {
        "status": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"gevonden\", \"geen_label\" (er is voor dit adres geen label geregistreerd) of \"niet_beschikbaar\"\r\n(het label kon nu niet worden opgehaald; probeer het later opnieuw)."
        },
        "klasse": {
          "type": [
            "string",
            "null"
          ],
          "description": "De labelklasse, van \"A++++\" tot en met \"G\"."
        },
        "registratiedatum": {
          "type": [
            "string",
            "null"
          ],
          "description": "Datum waarop het label is geregistreerd (jjjj-mm-dd)."
        },
        "geldigTot": {
          "type": [
            "string",
            "null"
          ],
          "description": "Datum tot wanneer het label geldig is (jjjj-mm-dd). Ligt die in het verleden, dan is het label verlopen."
        },
        "gebouwtype": {
          "type": [
            "string",
            "null"
          ],
          "description": "Het woningtype volgens het label, bijvoorbeeld een tussenwoning of een appartement."
        },
        "gebouwsubtype": {
          "type": [
            "string",
            "null"
          ],
          "description": "Bij een appartement: de ligging in het gebouw."
        },
        "vereenvoudigd": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "True bij een vereenvoudigd energielabel, de methode van voor 2021."
        },
        "primaireFossieleEnergie": {
          "type": [
            "number",
            "null"
          ],
          "description": "Primair fossiel energiegebruik in kWh per m2 per jaar, de maat onder de labelklasse sinds 2021.",
          "format": "double"
        }
      },
      "additionalProperties": false,
      "description": "Het geregistreerde energielabel van het adres, uit EP-Online van RVO. Alleen in de respons bij\r\n`?energielabel=true`. Kijk eerst naar WozApi.Models.ViewModels.EnergielabelInfo.Status: alleen bij \"gevonden\" zijn de\r\nandere velden gevuld."
    },
    "GemeenteInfo": {
      "type": "object",
      "properties": {
        "code": {
          "type": [
            "string",
            "null"
          ],
          "description": "De CBS-code van de gemeente."
        },
        "naam": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "GrensToetsInfo": {
      "type": "object",
      "properties": {
        "euro": {
          "type": "integer",
          "format": "int32"
        },
        "peildatum": {
          "type": [
            "string",
            "null"
          ],
          "description": "De peildatum waarop de grens geldt (jjjj-mm-dd); leeg als de regeling er geen noemt."
        },
        "wozWaarde": {
          "type": [
            "integer",
            "null"
          ],
          "description": "De WOZ-waarde van dit adres op die peildatum; leeg als die er niet is.",
          "format": "int32"
        },
        "onderGrens": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Of de waarde onder of op de grens valt; leeg als er geen waarde is."
        },
        "telt": {
          "type": "boolean",
          "description": "Of deze grens voor iedereen geldt. Noemt een regeling twee grenzen, dan kiest de eigenaar vaak\r\neen van beide; een grens die alleen een hoger bedrag of een bijzondere groep betreft, telt niet."
        }
      },
      "additionalProperties": false
    },
    "IsdeToetsInfo": {
      "type": "object",
      "properties": {
        "regel": {
          "type": [
            "string",
            "null"
          ]
        },
        "citaat": {
          "type": [
            "string",
            "null"
          ],
          "description": "De zin uit de regeling of van de pagina van de gemeente."
        },
        "bron": {
          "type": [
            "string",
            "null"
          ],
          "description": "Waar dat citaat staat."
        }
      },
      "additionalProperties": false,
      "description": "Hoe de ISDE en het bedrag van de regeling samengaan, met de zin uit de regeling."
    },
    "KadastraalObjectInfo": {
      "type": "object",
      "properties": {
        "kadastraleGemeenteCode": {
          "type": [
            "string",
            "null"
          ],
          "description": "Code van de kadastrale gemeente, bijvoorbeeld \"ASD00\"."
        },
        "kadastraleSectie": {
          "type": [
            "string",
            "null"
          ],
          "description": "Sectieletter binnen de kadastrale gemeente, bijvoorbeeld \"K\"."
        },
        "kadastraalPerceelNummer": {
          "type": [
            "string",
            "null"
          ],
          "description": "Perceelnummer binnen de sectie."
        },
        "aanduiding": {
          "type": [
            "string",
            "null"
          ],
          "description": "De drie delen samengevoegd, bijvoorbeeld \"ASD00 K 1234\"."
        }
      },
      "additionalProperties": false,
      "description": "Kadastrale aanduiding van het perceel waarop het WOZ-object ligt."
    },
    "MaatregelenToetsInfo": {
      "type": "object",
      "properties": {
        "betaalt": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "De maatregelen die de gemeente betaalt, voor deze woning: dak (ook zoldervloer), spouwmuur, gevel (binnen of buiten),\r\nvloer (ook bodem) en glas. Leeg: de regeling betaalt geen isolatie, zie tekst. Hangt het af van de WOZ-waarde, dan\r\nstaat hier wat geldt bij de waarde op de peildatum van de regeling."
        },
        "viaGemeente": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "Wat de gemeente alleen betaalt via haar eigen bedrijf of route (een intermediair, een aanbesteed isolatiebedrijf); met\r\neen ander bedrijf krijgt de bewoner daarvoor alleen de ISDE. Weg als alles ook met een eigen bedrijf kan."
        },
        "tekst": {
          "type": [
            "string",
            "null"
          ],
          "description": "Wat dat betekent, in gewone woorden, met de voorwaarde die ertoe doet."
        },
        "citaat": {
          "type": [
            "string",
            "null"
          ],
          "description": "De zin uit de regeling of van de pagina van de gemeente waar het op rust."
        },
        "bron": {
          "type": [
            "string",
            "null"
          ],
          "description": "Waar dat citaat staat."
        }
      },
      "additionalProperties": false,
      "description": "Welke isolatie een regeling betaalt, met de zin uit de regeling of van de gemeente als bewijs."
    },
    "PerceelInfo": {
      "type": "object",
      "properties": {
        "aanduiding": {
          "type": [
            "string",
            "null"
          ],
          "description": "Kadastrale aanduiding, bijvoorbeeld \"ASD04 F 1145\"."
        },
        "kadastraleGemeenteCode": {
          "type": [
            "string",
            "null"
          ],
          "description": "AKR-code van de kadastrale gemeente, bijvoorbeeld \"ASD04\"."
        },
        "kadastraleGemeente": {
          "type": [
            "string",
            "null"
          ],
          "description": "Naam van de kadastrale gemeente, bijvoorbeeld \"Amsterdam\"."
        },
        "kadastraleSectie": {
          "type": [
            "string",
            "null"
          ]
        },
        "perceelnummer": {
          "type": "integer",
          "format": "int32"
        },
        "oppervlakteM2": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Kadastrale grootte van het perceel in m2.",
          "format": "int32"
        },
        "soortGrootte": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"Vastgesteld\" of \"Voorlopig\", zoals het Kadaster de grootte kwalificeert."
        },
        "perceelId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Lokale identificatie van het kadastrale object binnen NL.IMKAD.KadastraalObject."
        },
        "geometrie": {
          "description": "Perceelgrens als GeoJSON-geometrie in WGS84 (EPSG:4326).\r\nAlleen gevuld bij `?geometrie=true`, omdat het de respons flink groter maakt.",
          "nullable": true
        }
      },
      "additionalProperties": false,
      "description": "Perceel uit de open Kadastrale Kaart, gekoppeld aan dit adres via de BAG.\r\nDit is de actuele perceelsituatie en kan afwijken van WozApi.Models.ViewModels.WozApiResponse.KadastraleObjecten,\r\ndat de aanduiding geeft waar de WOZ-registratie aan hangt."
    },
    "RegelingToetsInfo": {
      "type": "object",
      "properties": {
        "naam": {
          "type": [
            "string",
            "null"
          ]
        },
        "hoofd": {
          "type": "boolean",
          "description": "De belangrijkste regeling van de gemeente; precies een per gemeente."
        },
        "soort": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"open\"; \"uitnodiging\" (alleen wie een brief kreeg, of alleen in aangewezen wijken); \"budget_op\";\r\n\"gesloten\"; \"vve\" (alleen voor VvE's); \"hoger_bedrag\" (de grens bepaalt alleen een hoger bedrag)."
        },
        "uitkomst": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"onder_grens\": de WOZ-waarde valt onder (of op) een grens die voor iedereen geldt. \"boven_grens\":\r\nerboven. \"peildatum_ontbreekt\": er is geen WOZ-waarde op de peildatum van de regeling.\r\n\"geen_waarde\": er is voor dit adres geen WOZ-waarde. \"geen_harde_grens\": de grens sluit niemand\r\nuit en bepaalt alleen een bedrag of een andere eis; zie toelichting. \"grens_onbekend\": de regeling\r\nnoemt een grens zonder bedrag, zoals het gemiddelde van de gemeente; zie de regeling.\r\n\"buiten_gebied\": de regeling geldt in een wijk of een paar postcodes, en dit adres ligt erbuiten."
        },
        "toelichting": {
          "type": [
            "string",
            "null"
          ],
          "description": "Een zin die de uitkomst uitlegt, met grens, peildatum en waarde."
        },
        "grenzen": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/GrensToetsInfo"
          },
          "description": "De grenzen van de regeling, elk met de WOZ-waarde op zijn peildatum."
        },
        "voorwaarden": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/VoorwaardeToetsInfo"
          },
          "description": "Voorwaarden die de toets zelf kon nagaan, zoals bouwjaar en energielabel."
        },
        "nogNaTeGaan": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "Voorwaarden die per adres niet te toetsen zijn en die de aanvrager zelf nagaat."
        },
        "bedrag": {
          "type": [
            "string",
            "null"
          ],
          "description": "Het bedrag voor de bewoner, kort."
        },
        "bedragen": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/BedragToetsInfo"
          },
          "description": "Het bedrag per doelgroep (iedereen, laag inkomen, doe-het-zelf), zoals de regeling ze\r\nonderscheidt; leeg als de regeling geen bedrag noemt. Welke doelgroep geldt, hangt vaak af van\r\nhet inkomen: dat staat dan in WozApi.Models.ViewModels.BedragToetsInfo.Voorwaarde en onder nogNaTeGaan."
        },
        "gebied": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "De postcodes waar de regeling geldt, bij een regeling voor een wijk; weg als hij voor de hele gemeente geldt."
        },
        "gewijzigd": {
          "type": [
            "string",
            "null"
          ],
          "description": "De laatste dag waarop grens, bedrag of status van deze regeling veranderde, als we dat bijhouden."
        },
        "status": {
          "type": [
            "string",
            "null"
          ],
          "description": "Open, Gesloten, Budget op of Op uitnodiging."
        },
        "looptijd": {
          "type": [
            "string",
            "null"
          ],
          "description": "Tot wanneer en zolang er budget is, zoals de gemeente het zegt."
        },
        "bron": {
          "type": [
            "string",
            "null"
          ],
          "description": "De pagina van de gemeente over de regeling."
        },
        "regelingUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "De officiele tekst van de regeling, als die er is."
        },
        "nagelezen": {
          "type": [
            "string",
            "null"
          ]
        },
        "aanvragen": {
          "$ref": "#/$defs/AanvragenToetsInfo"
        },
        "maatregelen": {
          "$ref": "#/$defs/MaatregelenToetsInfo"
        },
        "isde": {
          "$ref": "#/$defs/IsdeToetsInfo"
        }
      },
      "additionalProperties": false,
      "description": "Een regeling met een WOZ-grens, getoetst aan de WOZ-waarde op de peildatum van die regeling."
    },
    "SubsidietoetsInfo": {
      "type": "object",
      "properties": {
        "status": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"getoetst\": de gemeente heeft een of meer regelingen met een WOZ-grens, en die staan in\r\nregelingen. \"geen_regeling\": nagelezen, en de gemeente heeft nu geen regeling met een WOZ-grens.\r\n\"niet_beschikbaar\": de gemeente van dit adres kon nu niet worden bepaald; probeer het later opnieuw."
        },
        "gemeente": {
          "$ref": "#/$defs/GemeenteInfo"
        },
        "nagelezen": {
          "type": [
            "string",
            "null"
          ],
          "description": "Wanneer we de regelingen van deze gemeente voor het laatst nalazen (jjjj-mm-dd)."
        },
        "toelichting": {
          "type": [
            "string",
            "null"
          ],
          "description": "Een zin over wat we bij deze gemeente vonden, of waarom de toets niet beschikbaar is."
        },
        "regelingen": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/RegelingToetsInfo"
          },
          "description": "De regelingen met een WOZ-grens, de belangrijkste eerst; leeg als er geen zijn."
        }
      },
      "additionalProperties": false,
      "description": "Alleen bij `?subsidietoets=true`: de toets van deze woning aan de gemeentelijke regelingen met\r\neen WOZ-grens, zoals een isolatiesubsidie. Kijk eerst naar WozApi.Models.ViewModels.SubsidietoetsInfo.Status. Elke gemeente is\r\nnagelezen; de datum staat in WozApi.Models.ViewModels.SubsidietoetsInfo.Nagelezen. Wat de toets niet per adres kan weten (een\r\ninkomen, eigenaar en bewoner, een energieadvies) staat per regeling onder nogNaTeGaan."
    },
    "TegoedInfo": {
      "type": "object",
      "properties": {
        "soort": {
          "type": [
            "string",
            "null"
          ],
          "description": "\"proef\" zolang de sleutel aan geen account hangt, \"credits\" als hij van een account is."
        },
        "limiet": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Unieke adressen die deze proef in totaal mag; leeg bij credits.",
          "format": "int32"
        },
        "gebruikt": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Unieke adressen die al gebruikt zijn; leeg bij credits.",
          "format": "int32"
        },
        "resterend": {
          "type": "integer",
          "description": "Wat er nog kan: adressen in de proef, of credits op het account.",
          "format": "int32"
        },
        "verlooptOp": {
          "type": [
            "string",
            "null"
          ],
          "description": "Wanneer een proefsleutel zonder account vervalt.",
          "format": "date-time"
        }
      },
      "additionalProperties": false,
      "description": "Het tegoed van een proefsleutel of van een account dat een AI-assistent aanmaakte."
    },
    "VoorwaardeToetsInfo": {
      "type": "object",
      "properties": {
        "tekst": {
          "type": [
            "string",
            "null"
          ]
        },
        "waarde": {
          "type": [
            "string",
            "null"
          ],
          "description": "Wat deze woning heeft."
        },
        "voldoet": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "WozObjectInfo": {
      "type": "object",
      "properties": {
        "wozobjectnummer": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Uniek nummer van het WOZ-object in de LV-WOZ.",
          "format": "int64"
        },
        "grondoppervlakte": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Oppervlakte van de grond in m2, indien bekend.",
          "format": "int32"
        }
      },
      "additionalProperties": false,
      "description": "Het WOZ-object zelf, los van de vastgestelde waarden per peildatum."
    },
    "WozWaarden": {
      "type": "object",
      "properties": {
        "peildatum": {
          "type": [
            "string",
            "null"
          ]
        },
        "vastgesteldeWaarde": {
          "type": "integer",
          "format": "int32"
        }
      },
      "additionalProperties": false
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/woz-api-nl-woz-api-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.