{"templateId":"markdown","sharedDataIds":{},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Responsible API Use","description":"Build integrations, automate workflows, and manage forms and responses programmatically with the forms.app API.","siteUrl":"https://developers.forms.app","image":"/assets/formsapp-developer-docs.6ffba4f5ff7d394698661bcdb0ed2a8452f27acaf4e82754e5d0f4109563471c.9c1bb791.png","lang":"en-US","projectTitle":"forms.app Developer Docs","llmstxt":{"sections":[{"title":"llmtxt for forms app documents","includeFiles":["**/*"],"excludeFiles":[]}],"hide":false,"excludeFiles":[]},"jsonLd":{"@context":"https://schema.org","@type":"Organization","additionalType":"https://en.wikipedia.org/wiki/Software_as_a_service","url":"https://forms.app","name":"forms.app","logo":"https://cdn.forms.app/icons/all/brands/formsapp-logo-dark.svg","description":"forms.app is a free online form builder designed for teams. forms.app offers a modern, easy-to-use form builder and allows unlimited responses and team members.","foundingDate":"2018","sameAs":"https://linkedin.com/company/formsapp","contactPoint":{"@type":"ContactPoint","contactType":"Customer service","email":"support@forms.app","url":"https://forms.app/en/contact-us"}}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"responsible-api-use","__idx":0},"children":["Responsible API Use"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These guidelines help you integrate with the forms.app API safely, respectfully, and in compliance with applicable laws. They supplement the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/legal/terms"},"children":["API Terms of Use"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"protect-your-credentials","__idx":1},"children":["Protect your credentials"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Treat API keys and OAuth tokens like passwords."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Store them in a secret manager or environment variables, never in client-side code, public repositories, or shared documents."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use one key per integration or environment so you can revoke access without disrupting other systems."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Rotate or revoke keys immediately if you suspect they have been exposed."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/quickstart#step-1-create-an-api-key"},"children":["Quick start"]}," for how to create and manage keys."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"respect-rate-limits","__idx":2},"children":["Respect rate limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The API enforces rate limits per key or token. When you receive ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]},":"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stop retrying immediately in a tight loop."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Wait before sending the next request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use exponential backoff for automated sync jobs."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cache form structure when possible instead of re-fetching on every run. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/the-essentials#rate-limiting"},"children":["The essentials"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"handle-submission-data-responsibly","__idx":3},"children":["Handle submission data responsibly"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Submissions returned by the API may contain personal data, such as names, email addresses, phone numbers, files, and other sensitive information."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you sync or store this data:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Collect and process only what your integration needs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Apply appropriate access controls in your systems."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retain data only as long as necessary for your stated purpose."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Honour privacy rights and deletion requests from your respondents where applicable."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Comply with laws such as GDPR, CCPA, or other regulations that apply to you."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["forms.app provides the API on your behalf as the form owner. You remain responsible for how you use respondent data once it leaves the API."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"stay-within-read-only-access","__idx":4},"children":["Stay within read-only access"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The API is read-only. Do not attempt to modify forms, submissions, or account settings through undocumented endpoints or unsupported methods. Write operations are not available in the current release."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Build integrations that read and sync data, for example, exporting submissions to a CRM, data warehouse, or reporting tool."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"build-reliable-integrations","__idx":5},"children":["Build reliable integrations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["success"]}," field in every response before reading ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle errors using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors[].errorCode"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors[].errorMessage"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/the-essentials#response-envelope"},"children":["The essentials"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /__health"]}," for uptime monitoring. This endpoint does not require authentication."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log failures without storing API keys or full submission payloads in plain text."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"do-not-abuse-the-service","__idx":6},"children":["Do not abuse the service"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Avoid behaviour that could harm forms.app or other users, including:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Excessive polling that could be replaced with reasonable sync intervals"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Attempting to access forms or submissions belonging to other accounts"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Circumventing authentication or rate limits"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Using the API for spam, fraud, or other unlawful activity"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["forms.app may throttle or revoke API access to protect the platform."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"keep-up-to-date","__idx":7},"children":["Keep up to date"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Review the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/changelog"},"children":["changelog"]}," for API and documentation updates."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Read ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/the-essentials"},"children":["The essentials"]}," and the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/faq"},"children":["FAQ"]}," before shipping an integration."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refer to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis"},"children":["API reference"]}," for endpoint and schema details."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"need-help","__idx":8},"children":["Need help?"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/quickstart"},"children":["Quick start"]},": Create a key and make your first request"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/faq"},"children":["FAQ"]},": Common integration questions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://forms.app/en/help-center"},"children":["forms.app Help Center"]},": Account and product support"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://forms.app/en/privacy-policy"},"children":["Privacy Policy"]},": How forms.app handles personal data"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Last updated: May 21, 2026"]}]}]},"headings":[{"value":"Responsible API Use","id":"responsible-api-use","depth":1},{"value":"Protect your credentials","id":"protect-your-credentials","depth":2},{"value":"Respect rate limits","id":"respect-rate-limits","depth":2},{"value":"Handle submission data responsibly","id":"handle-submission-data-responsibly","depth":2},{"value":"Stay within read-only access","id":"stay-within-read-only-access","depth":2},{"value":"Build reliable integrations","id":"build-reliable-integrations","depth":2},{"value":"Do not abuse the service","id":"do-not-abuse-the-service","depth":2},{"value":"Keep up to date","id":"keep-up-to-date","depth":2},{"value":"Need help?","id":"need-help","depth":2}],"frontmatter":{"seo":{"title":"Responsible API Use"}},"lastModified":"2026-05-26T07:43:28.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/legal/responsible-use","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}