Make a key

  1. In Agent002, open Connections → API keys and choose Make an API key. Only owners can, on the paid Business plans.
  2. Name it after where you’ll use it, for example Zapier or CRM sync.
  3. Copy the key: it starts with a002_ and is shown only once. Agent002 keeps only a fingerprint of it.

Send it with every request as Authorization: Bearer a002_… (or X-Api-Key: a002_…). A key acts for your whole account: it reads every form and response, and adds webhooks. It can’t change forms, people or billing. Delete a key under Connections and it stops at once, along with the webhooks it added.

Endpoints

The address is https://forms.agent002.eu/api/v1. Everything is JSON.

  • GET /me: the account the key belongs to.
  • GET /forms: your forms, newest first, with their status, link and number of responses.
  • GET /forms/{id}: one form and its questions (key, label, type, choices and parts).
  • GET /forms/{id}/responses: responses, newest first. limit takes 1 to 100 (25 by default); before takes a response id, to page back.
  • GET /forms/{id}/responses/{responseId}: one response.
  • POST /hooks with {"form": "…", "url": "https://…", "name": "…"}: sends each new response of that form to the address, signed, with retries. It appears under the form’s Destinations. The answer has the webhook’s id and, this once, its signing secret: keep it to check the signature of what arrives.
  • GET /hooks and DELETE /hooks/{id}: the webhooks added through the API, and removing one.

A response looks exactly like what a webhook gets: the form, the submission with answers by question key, and fields with each question’s label and its answer as text. Files come as a link that asks for an Agent002 sign-in; in webhooks and the API it’s signed for 7 days, so an automation can download it.

Example

The latest five responses of a form:

curl -H "Authorization: Bearer $AGENT002_KEY" "https://forms.agent002.eu/api/v1/forms/FORM_ID/responses?limit=5"

Good to know

  • Each key can make 120 requests a minute. Instead of asking for new responses again and again, add a webhook with POST /hooks.
  • Errors come with a sentence saying what to fix, in title, and field errors in errors.
  • The full description, for Power Automate custom connectors and code generators: openapi.json.
  • Whatever you send answers to becomes responsible for them too: list it in your privacy notice. See the GDPR checklist.