{"files":{"SKILL.md":"---\nname: forms\ndescription: \"Forms API skill. Use when working with Forms for marketing. Covers 6 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Forms\nAPI version: v3\n\n## Auth\nOAuth2 | ApiKey private-app in header\n\n## Base URL\nhttps://api.hubapi.com\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /marketing/v3/forms -- verify access\n3. POST /marketing/v3/forms -- create first form\n\n## Endpoints\n6 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Marketing\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /marketing/v3/forms |  |\n| POST | /marketing/v3/forms |  |\n| GET | /marketing/v3/forms/{formId} | Get a form definition |\n| PUT | /marketing/v3/forms/{formId} | Update a form definition |\n| DELETE | /marketing/v3/forms/{formId} | Archive a form definition |\n| PATCH | /marketing/v3/forms/{formId} | Partially update a form definition |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all forms?\" -> GET /marketing/v3/forms\n- \"Create a form?\" -> POST /marketing/v3/forms\n- \"Get form details?\" -> GET /marketing/v3/forms/{formId}\n- \"Update a form?\" -> PUT /marketing/v3/forms/{formId}\n- \"Delete a form?\" -> DELETE /marketing/v3/forms/{formId}\n- \"Partially update a form?\" -> PATCH /marketing/v3/forms/{formId}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Forms\n@base https://api.hubapi.com\n@version v3\n@auth OAuth2 | ApiKey private-app in header\n@endpoints 6\n@toc marketing(6)\n\n@endpoint GET /marketing/v3/forms\n@optional {after: str # The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results., archived: bool # Whether to return only results that have been archived., formTypes: [str], limit: int(int32) # The maximum number of results to display per page.}\n@returns(200) {paging: map{next: map{after: str, link: str}}, results: [any]} # successful operation\n\n@endpoint POST /marketing/v3/forms\n@returns(201) successful operation\n\n@endpoint GET /marketing/v3/forms/{formId}\n@desc Get a form definition\n@required {formId: str}\n@optional {archived: bool # Whether to return only results that have been archived.}\n@returns(200) successful operation\n\n@endpoint PUT /marketing/v3/forms/{formId}\n@desc Update a form definition\n@required {formId: str}\n@returns(200) successful operation\n\n@endpoint DELETE /marketing/v3/forms/{formId}\n@desc Archive a form definition\n@required {formId: str}\n@returns(204) No content\n\n@endpoint PATCH /marketing/v3/forms/{formId}\n@desc Partially update a form definition\n@required {formId: str}\n@optional {archived: bool # Whether this form is archived., configuration: map{allowLinkToResetKnownValues!: bool, archivable!: bool, cloneable!: bool, createNewContactForNewEmail!: bool, editable!: bool, embedType: str, language!: str, lifecycleStages!: [map], notifyContactOwner!: bool, notifyRecipients!: [str], postSubmitAction!: map, prePopulateKnownValues!: bool, recaptchaEnabled!: bool}, displayOptions: map{cssClass: str, renderRawHtml!: bool, style!: map, submitButtonText!: str, theme!: str}, fieldGroups: [map{fields!: [any], groupType!: str, richText: str, richTextType!: str}] # The fields in the form, grouped in rows., legalConsentOptions: any # Configuration for legal consent and data processing compliance options. Supports types: none, legitimate_interest, explicit_consent_to_process, implicit_consent_to_process., name: str # The name of the form. Expected to be unique for a hub.}\n@returns(200) successful operation\n\n@end\n"}}