[{"data":1,"prerenderedAt":300},["ShallowReactive",2],{"page:\u002Fen\u002Fapi":3},{"id":4,"title":5,"body":6,"description":292,"extension":293,"meta":294,"navigation":295,"path":296,"seo":297,"stem":298,"__hash__":299},"pages\u002Fen\u002Fapi.md","API",{"type":7,"value":8,"toc":289},"minimark",[9,24,63,82,162,182,209,270],[10,11,12,19],"page-head",{},[13,14,16],"template",{"v-slot:title":15},"",[17,18,5],"p",{},[13,20,21],{"v-slot:lead":15},[17,22,23],{},"One company per call, by its KVK number or its domain. Back as JSON.",[25,26,27,32,35,43,53],"page-section",{},[13,28,29],{"v-slot:title":15},[17,30,31],{},"Fetch a company",[17,33,34],{},"Send a KVK number and you get the company back: what it does and uses, as fixed fields.",[17,36,37,38,42],{},"Field names are English, in ",[39,40,41],"code",{},"snake_case",". The explanations and error messages are in Dutch.",[17,44,45,48,49,52],{},[39,46,47],{},"website"," is the company's main site, ",[39,50,51],{},"websites"," are the domains we know for the company. A list is an array, even with one value in it.",[13,54,55],{"v-slot:proof":15},[56,57],"api-request",{":response":58,"caption":59,"method":60,"path":61,":scroll":62},"{\"kvk_number\":\"00000002\",\"name\":\"Voorbeeld B.V.\",\"legal_form\":\"bv\",\"active\":true,\"vat_number\":\"NL000000002B01\",\"address\":{\"street\":\"Voorbeeldstraat\",\"house_number\":\"1\",\"postcode\":\"3511AA\",\"city\":\"Utrecht\",\"country\":\"NL\",\"latitude\":52.0907,\"longitude\":5.1214},\"building\":{\"uses\":[\"kantoorfunctie\"],\"floor_area\":180,\"construction_year\":1931},\"website\":\"voorbeeld.nl\",\"websites\":[\"voorbeeld.nl\",\"voorbeeldbv.nl\"],\"languages\":[\"nl\",\"en\"],\"services\":[\"Advies\",\"Onderhoud\"],\"trust_marks\":[],\"rating\":null,\"apps\":[],\"webshop\":false,\"webshop_platform\":null,\"payment_providers\":[],\"payment_methods\":[],\"shipping_countries\":[],\"shipping_area\":null,\"phone\":\"+31301234567\",\"whatsapp\":null,\"email\":\"info@voorbeeld.nl\",\"social_profiles\":[{\"platform\":\"linkedin\",\"url\":\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fvoorbeeld\"}],\"chat\":[],\"booking\":false,\"booking_tools\":[],\"opening_hours\":[{\"day\":\"monday\",\"opens\":\"09:00\",\"closes\":\"17:00\"},{\"day\":\"tuesday\",\"opens\":\"09:00\",\"closes\":\"17:00\"},{\"day\":\"wednesday\",\"opens\":\"09:00\",\"closes\":\"17:00\"},{\"day\":\"thursday\",\"opens\":\"09:00\",\"closes\":\"17:00\"},{\"day\":\"friday\",\"opens\":\"09:00\",\"closes\":\"17:00\"}],\"open_vacancies\":2,\"vacancies\":[{\"title\":\"Adviseur\",\"location\":\"Utrecht\",\"employment_type\":\"FULL_TIME\",\"url\":\"https:\u002F\u002Fvoorbeeld.nl\u002Fvacatures\u002Fadviseur\"},{\"title\":\"Office manager\",\"location\":\"Utrecht\",\"employment_type\":\"PART_TIME\",\"url\":\"https:\u002F\u002Fvoorbeeld.nl\u002Fvacatures\u002Foffice-manager\"}],\"technologies\":[{\"name\":\"Google Analytics\",\"category\":\"analytics\",\"version\":null,\"support\":null},{\"name\":\"WordPress\",\"category\":\"cms\",\"version\":\"6.9\",\"support\":\"current\"},{\"name\":\"Cookiebot\",\"category\":\"consent\",\"version\":null,\"support\":null}],\"cms\":\"WordPress\",\"outdated_software\":false,\"hosting\":{\"provider\":\"transip\",\"dns_provider\":\"transip\",\"cdn\":null,\"http3\":false},\"security_headers\":[\"strict-transport-security\",\"x-content-type-options\"],\"email_provider\":\"microsoft\",\"mail_security\":{\"spf\":\"softfail\",\"dmarc\":\"quarantine\",\"dkim\":true,\"bimi\":false,\"mta_sts\":false},\"cookie_banner\":true,\"consent_platform\":\"Cookiebot\",\"privacy_statement\":true,\"tracks_before_consent\":false,\"known\":{\"count\":35,\"total\":39,\"fields\":[\"legal_form\",\"active\",\"vat_number\",\"address\",\"building\",\"website\",\"websites\",\"languages\",\"services\",\"trust_marks\",\"apps\",\"webshop\",\"payment_providers\",\"payment_methods\",\"shipping_countries\",\"phone\",\"email\",\"social_profiles\",\"chat\",\"booking\",\"booking_tools\",\"opening_hours\",\"open_vacancies\",\"vacancies\",\"technologies\",\"cms\",\"outdated_software\",\"hosting\",\"security_headers\",\"email_provider\",\"mail_security\",\"cookie_banner\",\"consent_platform\",\"privacy_statement\",\"tracks_before_consent\"]}}","Example with a fictional company.","GET","\u002Fv1\u002Fcompanies\u002F00000002","true",[25,64,65,70,73,76],{},[13,66,67],{"v-slot:title":15},[17,68,69],{},"From number to list",[17,71,72],{},"The KVK number comes first. The domain is an equal second way in: if you only have a website, for example from the email address on a sign-up, you get the same response.",[17,74,75],{},"After that: searching on what companies do and use, and enriching a list in one go.",[13,77,78],{"v-slot:proof":15},[79,80],"endpoint-list",{":endpoints":81},"[{\"method\":\"GET\",\"path\":\"\u002Fv1\u002Fcompanies\u002F{kvk_number}\",\"description\":\"One company by its KVK number.\"},{\"method\":\"GET\",\"path\":\"\u002Fv1\u002Fcompanies?domain=voorbeeld.nl\",\"description\":\"The same company, by its domain.\"},{\"method\":\"GET\",\"path\":\"\u002Fv1\u002Fcompanies\",\"description\":\"Search companies on what they do and use.\"},{\"method\":\"POST\",\"path\":\"\u002Fv1\u002Fcompanies\u002Fenrich\",\"description\":\"Enrich a list of KVK numbers in one go.\"}]",[25,83,84,92,98,109,139,154],{},[13,85,86],{"v-slot:title":15},[17,87,88,89],{},"Unknown is ",[39,90,91],{},"null",[17,93,94,95,97],{},"A field we don't know is ",[39,96,91],{},". Never a blank string and never a zero, so you can tell no apart from we don't know.",[17,99,100,101,104,105,108],{},"The ",[39,102,103],{},"known"," object counts the fields we know. A number, not text like ",[39,106,107],{},"\"6\u002F7\"",", so you can sort and filter on it.",[110,111,112,119,133],"ul",{},[113,114,115,118],"li",{},[39,116,117],{},"count",": how many fields we know.",[113,120,121,124,125,128,129,132],{},[39,122,123],{},"total",": how many fields a response has, not counting ",[39,126,127],{},"kvk_number"," and ",[39,130,131],{},"name",".",[113,134,135,138],{},[39,136,137],{},"fields",": the fields we know.",[17,140,141,142,145,146,149,150,153],{},"A ",[39,143,144],{},"false",", a ",[39,147,148],{},"0"," or an empty list ",[39,151,152],{},"[]"," is an answer, and counts as known.",[13,155,156],{"v-slot:proof":15},[157,158],"plain-table",{":code":159,":columns":160,":rows":161},"[1]","[\"Meaning\",\"Value\"]","[[\"Known\",\"the value\"],[\"No, zero or none\",\"false, 0 or []\"],[\"Unknown\",\"null\"]]",[25,163,164,169,175],{},[13,165,166],{"v-slot:title":15},[17,167,168],{},"Format",[17,170,171,172,132],{},"Values come in a fixed form, so you can store them without converting. How you show them is up to you: the app shows a phone number as ",[39,173,174],{},"030 123 45 67",[13,176,177],{"v-slot:proof":15},[157,178],{":code":179,":columns":180,":rows":181},"[2]","[\"Field\",\"Form\",\"Example\"]","[[\"Phone\",\"E.164\",\"+31301234567\"],[\"Postcode\",\"without a space\",\"3511AA\"],[\"Country\",\"ISO 3166-1\",\"NL\"],[\"Legal form, providers\",\"lower-case code\",\"bv\"],[\"Amount\",\"cents, with currency\",\"4900\"],[\"Date\",\"ISO 8601\",\"2026-10-20\"]]",[25,183,184,189,203],{},[13,185,186],{"v-slot:title":15},[17,187,188],{},"Your API key",[17,190,191,192,195,196,132],{},"Send your key in the header ",[39,193,194],{},"Authorization: Bearer \u003Ckey>",". You create your keys yourself, in ",[197,198,202],"a",{"href":199,"rel":200},"https:\u002F\u002Fapp.achtcijfers.nl\u002Fsignup?lang=en",[201],"nofollow","your account",[17,204,205,206,132],{},"Each key can make [number] requests per minute. Above that, you get the error ",[39,207,208],{},"rate_limited",[25,210,211,216,234,263],{},[13,212,213],{"v-slot:title":15},[17,214,215],{},"Errors",[17,217,218,219,222,223,225,226,229,230,233],{},"An error always has the same shape: an ",[39,220,221],{},"error"," object with a ",[39,224,39],{}," for your code to act on, a ",[39,227,228],{},"message"," in Dutch and a ",[39,231,232],{},"docs_url"," to the explanation below.",[110,235,236,242,248,254],{},[113,237,238,241],{},[39,239,240],{"id":240},"invalid_api_key"," (401): the key is missing, or we don't know it. It may have been revoked.",[113,243,244,247],{},[39,245,246],{"id":246},"invalid_kvk_number"," (422): a KVK number has eight digits, without spaces or dots.",[113,249,250,253],{},[39,251,252],{"id":252},"company_unknown"," (404): we don't know the number. That says nothing about the company.",[113,255,256,258,259,262],{},[39,257,208],{"id":208}," (429): the key has reached its limit. The ",[39,260,261],{},"Retry-After"," header says after how many seconds you can try again.",[13,264,265],{"v-slot:proof":15},[56,266],{":response":267,"caption":268,"method":60,"path":269},"{\"error\":{\"code\":\"company_unknown\",\"message\":\"We kennen KVK-nummer 00000001 niet. Dat zegt niets over het bedrijf.\",\"docs_url\":\"https:\u002F\u002Fachtcijfers.nl\u002Fapi#company_unknown\"}}","Example with a fictional number we don't know.","\u002Fv1\u002Fcompanies\u002F00000001",[25,271,272,277],{},[13,273,274],{"v-slot:title":15},[17,275,276],{},"What you get per call",[17,278,279,280,284,285,132],{},"How many fields a response has, you choose with the package: Basis, Plus or Tech. Which field is in which package is on ",[197,281,283],{"href":282},"\u002Fen\u002Ffields","Fields",". You pay per company, and a number we don't know costs nothing. ",[197,286,288],{"href":287},"\u002Fen\u002Fpricing","Go to pricing",{"title":15,"searchDepth":290,"depth":290,"links":291},2,[],"Fetch a company by its KVK number or its domain, and get back what it does and uses as JSON.","md",{},true,"\u002Fen\u002Fapi",{"title":5,"description":292},"en\u002Fapi","EVwDSgeTKx_-sCB-8NjxRYcVN5mjQMcZGIQQCqi3ICc",1793465541036]