Naar de hoofdinhoud

Ontwikkelaarsapps, API-sleutels en webhooks

Maak apps en API-sleutels aan, test in een sandbox, verstuur webhooks, installeer apps van andere bedrijven en bekijk aanvraaglogboeken en uitgaven per sleutel.

Geschreven door Sarah Chen

In de instellingen voor Ontwikkelaar koppel je Exayard aan je eigen code en aan apps die andere bedrijven bouwen. Open Instellingen en vervolgens Ontwikkelaar. Alleen beheerders van het bedrijf zien dit onderdeel in het menu Instellingen. Een lid dat de pagina opent, kan alles lezen maar niets wijzigen.

Apps, API-sleutels, webhooks en logboeken zijn inbegrepen bij elk abonnement, ook bij Free. Alleen AI-werk wordt in rekening gebracht.

Apps

Een app is een van je integraties, zoals "Acme estimator" of "Nightly sync". Elke API-sleutel hoort bij een app. Apps is het eerste onderdeel op de pagina. Elk lid kan het lezen. Alleen beheerders maken of wijzigen apps.

Klik op Nieuwe app en vul de Naam, Beschrijving, Homepage, Support-e-mailadres en Machtigingen in. Machtigingen zijn per resource verdeeld in lezen en schrijven, zoals read:projects en write:estimates. Apps kunnen niet om de machtiging admin:org vragen. Een bedrijf kan maximaal 25 apps hebben.

Elke app toont wanneer hij is aangemaakt en wat zijn aanvraaglimiet is, zoals "Maximaal 60 aanvragen per minuut per bedrijf en 600 in totaal". Het menu Meer acties van de app bevat:

  • Bewerken wijzigt de gegevens en machtigingen van de app.

  • Webhook stelt het ene adres in dat gebeurtenissen ontvangt van elk bedrijf dat de app heeft geïnstalleerd.

  • App verwijderen verwijdert de app en trekt al zijn sleutels in. Elk bedrijf dat de app heeft geïnstalleerd, verliest de toegang.

API-sleutels

Met een API-sleutel kan je eigen code de Exayard-API aanroepen. Sleutels staan binnen een app, onder Sleutels. Een sleutel werkt in het eigen bedrijf van zijn app, dus je hoeft geen bedrijfs-ID mee te sturen.

Om een sleutel te maken, klik je in de app op Nieuwe sleutel. Geef de sleutel een Naam, zoals "Productie". Kies onder Machtigingen voor Alle om elke machtiging van de app toe te kennen, of voor Specifiek om er minder te kiezen. Stel eventueel een datum in bij Verloopt als de sleutel voor kortlopend werk is. De sleutel werkt tot en met het einde van die dag. Klik op Aanmaken.

Exayard toont de volledige sleutel één keer. Kopieer hem op dat moment, want hij wordt nooit meer getoond. Exayard bewaart alleen een versleutelde kopie, dus een verloren sleutel kan niet worden hersteld. Maak een nieuwe aan en trek de oude in.

Een sleutel begint met exa_live_. Een sleutel die in een sandbox is gemaakt, begint met exa_test_. Nadat je hem hebt aangemaakt, toont de sleutel zijn naam, een voorbeeldweergave zoals exa_live_...AbCd en Laatst gebruikt of Nooit gebruikt. Een sleutel met een vervaldatum toont Verloopt en de datum, en een verlopen sleutel toont Verlopen.

Een app kan maximaal 25 actieve sleutels hebben. Een verlopen sleutel telt nog mee totdat je hem intrekt. Om zonder onderbreking van sleutel te wisselen, maak je een tweede sleutel aan, zet je je servers erop over en trek je daarna de eerste in.

Open het menu Sleutelacties van een sleutel om de Naam te wijzigen (Naam wijzigen) of de sleutel in te trekken (Intrekken). Intrekken kan niet ongedaan worden gemaakt, en de sleutel werkt binnen 30 seconden niet meer.

Als een sleutel op een openbare plek opduikt, zoals in een openbare coderepository, trekt Exayard hem in, krijgen je beheerders een e-mail en blijft de sleutel in de lijst staan, gemarkeerd als Openbaar aangetroffen, ingetrokken.

Wanneer een ander bedrijf je app heeft geïnstalleerd, toont het venster voor een nieuwe sleutel ook Werkt in. Dit bedrijf is de standaard. Elk bedrijf dat de app heeft geïnstalleerd maakt een sleutel die je server in elk van die bedrijven gebruikt. Elke aanroep noemt dan zijn bedrijf in de header Exayard-Organization-Id.

Dezelfde sleutels koppelen ook de no-code-tools. Zie Exayard koppelen aan Zapier, Exayard koppelen aan Make en Exayard koppelen aan n8n. Voor AI-assistenten, zie Exa verbinden met je AI-assistent.

Oude sleutels

Sleutels die zijn gemaakt voordat sleutels in apps stonden, beginnen met ak_. Ze blijven werken, maar er kunnen geen nieuwe meer worden gemaakt. Ze staan onder Oude sleutels onderaan de pagina, alleen zolang er nog zijn.

Elke beheerder ziet daar elke sleutel van het bedrijf, ongeacht wie hem heeft gemaakt. Een sleutel die iemand anders heeft gemaakt, toont Gemaakt door en diens naam. Iedereen ziet ook zijn eigen persoonlijke sleutels. Klik op het prullenbakpictogram om een sleutel in te trekken (Intrekken). Hij werkt dan direct niet meer.

Sandboxes

Een sandbox is een testbedrijf dat aan je bedrijf is gekoppeld. Gebruik het om een integratie te bouwen en te testen zonder je echte projecten aan te raken. Alleen beheerders zien Sandboxes.

Klik op Nieuwe sandbox, geef hem een Naam en klik op Aanmaken. Een bedrijf kan maximaal 5 sandboxes hebben. Met Openen schakel je over naar de sandbox, waar de bedrijfswisselaar hem markeert als Sandbox. Maak daar zoals gewoonlijk een app en een sleutel aan. De sleutels beginnen met exa_test_. Om live te gaan, maak je dezelfde app en sleutel aan in je echte bedrijf en vervang je de sleutel in je code.

Een sandbox volgt het abonnement van je bedrijf, en je bedrijf betaalt voor het verbruik ervan. Hij heeft geen eigen facturering en krijgt geen eigen maandelijks AI-verbruik. Webhooks en integraties werken zoals in je echte bedrijf.

Een sandbox verstuurt geen e-mails om offertes te delen of ondertekende kopieën naar mensen buiten de sandbox, en verstuurt geen sms-berichten. Ze worden getoond als "Niet verzonden omdat dit bedrijf een sandbox is". Uitnodigingen om lid te worden van de sandbox worden zoals gewoonlijk verstuurd.

Uittrekstaten en het lezen van bestanden in een sandbox leveren gratis resultaten op die zijn gekopieerd uit ons voorbeeldproject. De uittrekstaat, de pagina's ervan en de webhook die meldt dat de uittrekstaat is afgerond, zijn gemarkeerd als voorbeeld. Begrotingen, offertes, het zoeken naar elementen en de chat antwoorden ook met voorbeelden, eveneens gratis.

Om een sandbox te verwijderen, klik je op Verwijderen in de rij en vervolgens op Sandbox verwijderen. De sandbox wordt gesloten, de sleutels werken niet meer en de gegevens worden later gewist.

Webhooks

Met een webhook laat Exayard je server weten wanneer er iets gebeurt in je bedrijf. Elk lid kan de lijst lezen. Alleen beheerders voegen webhooks toe of wijzigen ze.

Klik op Webhook aanmaken, voer de URL in die de afleveringen moet ontvangen en voeg eventueel een Beschrijving toe. Kies welke Gebeurtenissen je wilt versturen. Selecteer Alle om elke gebeurtenis te ontvangen, ook nieuwe, of Specifiek om te kiezen uit de lijst. Elke gebeurtenis en de inhoud ervan staan in de catalogus met webhookgebeurtenissen.

Wanneer je een webhook aanmaakt, toont Exayard één keer het Ondertekeningsgeheim. Kopieer het op dat moment, want het wordt niet opnieuw getoond.

Open het menu Meer acties van een webhook voor de rest:

  • Bewerken wijzigt de URL, beschrijving en gebeurtenissen, en stelt de Status in op Actief of Gepauzeerd. Een gepauzeerde webhook ontvangt geen afleveringen. Het venster bevat ook Geheim vernieuwen. Het oude geheim werkt direct niet meer, dus werk eerst je server bij.

  • Testgebeurtenis verzenden verstuurt één gebeurtenis van het Type gebeurtenis dat je kiest. Het venster wacht op het antwoord van je server en toont het resultaat en de antwoordcode. Een testgebeurtenis bevat "test": true.

  • Afleveringen toont de laatste 25 afleveringen met hun gebeurtenis, status, antwoordcode en aantal pogingen. Een aflevering is In behandeling, Opnieuw proberen, Afgeleverd of Mislukt. Beheerders kunnen op Opnieuw verzenden klikken om een aflevering nogmaals te versturen.

  • Webhook verwijderen stopt alle afleveringen naar die URL.

Een testgebeurtenis en een herhaalde verzending worden één keer verstuurd en nooit opnieuw geprobeerd.

Webhookafleveringen beveiligen

Elke aflevering bevat een Exayard-Signature-header in de vorm t=<unix>,v1=<digest>. Exayard maakt de handtekening door de tijdstempel en de body van de aanvraag samen te voegen en die vervolgens met HMAC-SHA256 te ondertekenen met het geheim van je webhook.

Elke aflevering bevat ook de headers Exayard-Event-Id, Exayard-Event-Type en Exayard-Organization-Id. De JSON-body heeft een veld organizationId dat het bedrijf noemt waar de gebeurtenis vandaan komt. De header bevat dezelfde ID, zodat je een aflevering kunt routeren voordat je de body leest. De handtekening dekt de volledige body, inclusief organizationId.

Omdat elke aflevering het bijbehorende bedrijf noemt, kan één ontvangstadres voor veel bedrijven werken. Registreer dezelfde URL in elk bedrijf en routeer elke aflevering op basis van organizationId. Elke webhook heeft een eigen geheim, dus kies het geheim op basis van Exayard-Organization-Id voordat je verifieert.

Om een aflevering te verifiëren, bereken je de handtekening opnieuw met je geheim, controleer je of de tijdstempel niet meer dan vijf minuten van het huidige tijdstip afwijkt en vergelijk je de digests.

Een mislukte aflevering wordt in totaal maximaal 10 keer geprobeerd, verspreid over ongeveer 80 uur, met steeds langere wachttijden tussen de pogingen. Elke poging verstuurt dezelfde body en dezelfde gebeurtenis-ID. Een doorverwijzing telt als mislukt.

Andere bedrijven je app laten installeren

Je app werkt in je eigen bedrijf zodra je hem aanmaakt. Elke app heeft ook een onderdeel Andere bedrijven deze app laten installeren. Het toont of de app Beoordeeld, Beoordeling aangevraagd of Niet beoordeeld is, de Aanmeldadressen, de Client-ID en hoeveel bedrijven de app kunnen installeren.

Beheerders openen hiervoor het menu Installatieacties:

  • Aanmeldadressen bewerken stelt de adressen in waarnaar Exayard mensen terugstuurt wanneer je app ze laat inloggen met hun Exayard-account. Voer één adres per regel in, maximaal 10. Elk adres moet beginnen met https://, of met http://localhost zolang je test. De eerste keer dat je aanmeldadressen opslaat, toont Exayard één keer het Clientgeheim van de app.

  • Installatielink kopiëren kopieert een link die je naar elk bedrijf kunt sturen. Hij opent het installatievenster voor de beheerder van dat bedrijf.

  • Beoordeling aanvragen stuurt de app ter beoordeling naar de support van Exayard.

Een nieuwe app kan in maximaal 25 bedrijven naast je eigen bedrijf worden geïnstalleerd en verschijnt niet in Apps zoeken. Bedrijven onder Accounts voor je klanten tellen niet mee voor die limiet. Na goedkeuring toont de app Beoordeeld en vervalt de installatielimiet. Gebruik Tonen in Apps zoeken om de app in de lijst van elk bedrijf op te nemen, of Verbergen in Apps zoeken om hem eruit te halen. Een app met de status Opgeschort kan Exayard niet aanroepen totdat de support de opschorting opheft, en de installaties blijven behouden.

Wanneer je machtigingen van een app verwijdert, verliest elke installatie die direct. Wanneer je machtigingen toevoegt, behoudt elk bedrijf zijn huidige toegang totdat een van zijn beheerders de nieuwe machtigingen goedkeurt.

App-webhook

Open het menu Meer acties van de app en klik op Webhook. Voer de URL in en klik op Aanmaken, en kopieer daarna het Ondertekeningsgeheim, dat Exayard maar één keer toont. Elk bedrijf dat de app heeft geïnstalleerd, verstuurt de gebeurtenissen die onder de verleende machtigingen vallen. Je app ontvangt ook app.installed, app.scopes_approved en app.uninstalled wanneer een bedrijf de app installeert, ruimere toegang goedkeurt of de app verwijdert. Afleveringen noemen hun bedrijf en zijn op dezelfde manier ondertekend als andere webhooks.

In hetzelfde venster kun je afleveringen Pauzeren en Hervatten, Geheim vernieuwen en Webhook verwijderen.

Gekoppelde apps

Gekoppelde apps toont de apps die in je bedrijf zijn geïnstalleerd. Elk lid kan dit zien. Alleen beheerders installeren, verwijderen of keuren goed.

Elke rij toont de naam van de app, of hij Beoordeeld is, het bedrijf dat hem heeft gebouwd, wie hem heeft geïnstalleerd en wanneer, en de machtigingen die zijn verleend.

Een app installeren

Open de installatielink van de app, of klik op Installeren naast de app in Apps zoeken. Het venster toont wie de app heeft gebouwd, of hij beoordeeld is en om welke machtigingen hij vraagt. Kies vervolgens:

  • Bedrijf: elk bedrijf waarin je beheerder bent. Een bedrijf dat de app al heeft, is gemarkeerd met (geïnstalleerd). Opnieuw installeren slaat je nieuwe keuzes op.

  • Projecten: Alle projecten, of Alleen deze projecten en vink de projecten aan die de app mag bereiken, maximaal 500. De app kan geen enkel ander project in het bedrijf bereiken.

  • Maandelijkse AI-limiet: het maximale bedrag dat het AI-werk van de app je bedrijf per factuurmaand mag kosten, in je factuurvaluta. Laat het veld leeg voor Geen limiet.

Klik op Installeren. Als de app je laat inloggen, brengt Exayard je daarna verder om het inloggen bij de app af te ronden. Als je lid bent maar geen beheerder, vertelt het venster je welke beheerder van welk bedrijf de app kan installeren. Klik op Link kopiëren om de link naar die beheerder te sturen.

Om de projecten later te wijzigen, open je de installatielink opnieuw en installeer je met de nieuwe keuze.

Meer toegang goedkeuren

Wanneer een app om meer machtigingen vraagt, toont de rij Vraagt om meer toegang met de nieuwe machtigingen. Een beheerder klikt op Goedkeuren om ze te verlenen. Tot die tijd houdt de app de toegang die hij had.

Een app verwijderen

Open het menu Meer acties van de app, klik op Verwijderen en bevestig. De app verliest direct de toegang tot je bedrijf en zijn webhooks stoppen. AI-werk dat de app al had gestart, wordt nog afgerond.

Apps zoeken

Apps zoeken staat binnen Gekoppelde apps. Het toont beoordeelde apps die hun makers in de lijst hebben laten opnemen. Een app die je bedrijf al heeft, toont Geïnstalleerd. Klik bij elke andere app op Installeren om het installatievenster te openen.

Je persoonlijke koppelingen

Je persoonlijke koppelingen toont de AI-tools en andere apps die je aan je eigen Exayard-account hebt gekoppeld, zoals ChatGPT of Claude. Het staat bovenaan Gekoppelde apps, en alleen jij ziet je eigen koppelingen. Een persoonlijke koppeling handelt als jou, dus kan alles bereiken wat jij kunt bereiken.

Elke koppeling toont wanneer hij voor het eerst en voor het laatst is gebruikt, en in welke bedrijven. Om een koppeling te stoppen, open je het menu Meer acties, klik je op Verwijderen en bevestig je. De volgende aanroep wordt geweigerd. De koppeling blijft in de lijst staan, gemarkeerd als Verwijderd, en met Opnieuw toestaan laat je hem weer toe. Om een nieuwe tool te koppelen, zie Exa verbinden met je AI-assistent.

Accounts voor je klanten

Je app kan via de API Exayard-bedrijven aanmaken voor klanten die Exayard alleen via jouw product gebruiken. Je bedrijf is eigenaar van deze bedrijven en betaalt voor het AI-werk dat erin wordt uitgevoerd. Ze hebben geen eigen leden, en je apps worden er automatisch in geïnstalleerd.

Accounts voor je klanten toont ze aan beheerders, met per bedrijf de Naam en de datum waarop het is Aangemaakt. Klik op Vrijgeven en bevestig om een bedrijf te sluiten. Elke app in het bedrijf verliest de toegang.

Aan de slag

De kaart Snelstart bevat een kant-en-klare prompt voor een AI-editor zoals Claude of Cursor. Klik op Prompt kopiëren en plak hem in je editor. De prompt bevat de basis-URL van de API, het authenticatieformaat, de machtigingen en het ondertekeningsschema voor webhooks, zodat de AI een werkende integratie kan bouwen en je om de benodigde gegevens kan vragen. Alleen beheerders zien deze kaart, omdat er een API-sleutel voor nodig is.

De kaart Documentatie linkt met Documentatie openen naar de volledige ontwikkelaarsdocumentatie, en naar de OpenAPI-specificatie, die elke route en elk schema beschrijft. Beheerders zien ook Verbinden met Claude of Cursor, waarmee de instellingen worden geopend om AI-assistenten met Exayard te verbinden.

Logboeken

Logboeken toont de aanvragen naar de API, de nieuwste eerst. Elke rij toont de Methode, het Pad, de Status, de Tijd en de Latentie. Klik onderaan op Meer laden om oudere aanvragen te zien.

Beheerders zien elke aanvraag. Leden zien alleen de aanvragen die niet via een app zijn binnengekomen.

Beheerders kunnen filteren op App, en daarna op een van de sleutels van die app. Iedereen kan een Eindgebruiker invoeren om alleen de aanvragen van die klant te zien. Een eindgebruiker is je eigen ID voor een van je klanten. Je code stuurt die bij elke aanvraag mee in de header Exayard-End-User. Gebruik nooit een e-mailadres als ID.

Selecteer een rij om alle details te zien, waaronder de Aanvraag-ID, de app en eindgebruiker, en de Aanvraagbody en Antwoordbody. Gebruik de logboeken om te bevestigen dat een aanroep is gelukt of om uit te zoeken waarom een integratie niet werkt.

Uitgaven per sleutel en eindgebruiker

Beheerders zien wat elke app deze maand heeft uitgegeven onder Uitgaven per app in Instellingen en vervolgens Verbruik. Je eigen apps staan daar ook. Onder elke app toont Per sleutel wat elke sleutel heeft uitgegeven, en Top-eindgebruikers toont de vijf eindgebruikers die het meest hebben uitgegeven. Uitgaven die niet aan een van de sleutels van de app zijn gekoppeld, worden getoond als Overig.

Maandelijkse AI-limiet

De maandelijkse AI-limiet van een app is het maximale bedrag dat het AI-werk van de app je bedrijf per factuurmaand mag kosten. Om de limiet in te stellen, open je het menu Meer acties van de app onder Uitgaven per app en klik je op Maandelijkse AI-limiet instellen. Voer een bedrag in je factuurvaluta in en klik op Opslaan. Sla een leeg veld op om de limiet te verwijderen.

Wanneer de app zijn limiet bereikt, wordt zijn AI-werk voor de rest van de factuurmaand geweigerd, ook als je bedrijf nog AI-verbruik over heeft. De eigen limieten van je bedrijf blijven gelden. AI-werk dat mensen zelf starten, telt nooit mee voor de limiet van een app.

Was dit een antwoord op uw vraag?