# Netlify

Manage Netlify: sites, deploys, builds, env vars, forms, and DNS. Exposes **47 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `netlify_sites_list` | List all sites - GET /sites. |
| `netlify_site_get` | Get one site - GET /sites/&#123;site_id&#125;. |
| `netlify_site_create` | Create a new site - POST /sites. |
| `netlify_site_update` | Update a site - PATCH /sites/&#123;site_id&#125;. |
| `netlify_site_delete` | Delete a site - DELETE /sites/&#123;site_id&#125;. |
| `netlify_deploys_list` | List deploys for a site - GET /sites/&#123;site_id&#125;/deploys. |
| `netlify_deploy_get` | Get one deploy - GET /sites/&#123;site_id&#125;/deploys/&#123;deploy_id&#125;. |
| `netlify_deploy_create` | Create a new deploy (trigger build) - POST /sites/&#123;site_id&#125;/deploys. |
| `netlify_deploy_status` | Get deploy status - GET /sites/&#123;site_id&#125;/deploys/&#123;deploy_id&#125;/status. |
| `netlify_deploy_cancel` | Cancel a deploy - POST /sites/&#123;site_id&#125;/deploys/&#123;deploy_id&#125;/cancel. |
| `netlify_builds_list` | List builds for a site - GET /sites/&#123;site_id&#125;/builds. |
| `netlify_build_get` | Get one build - GET /sites/&#123;site_id&#125;/builds/&#123;build_id&#125;. |
| `netlify_build_cancel` | Cancel a build - POST /sites/&#123;site_id&#125;/builds/&#123;build_id&#125;/cancel. |
| `netlify_env_vars_list` | List environment variables - GET /sites/&#123;site_id&#125;/env. |
| `netlify_env_var_get` | Get one environment variable - GET /sites/&#123;site_id&#125;/env/&#123;key&#125;. |
| `netlify_env_var_create` | Create an environment variable - POST /sites/&#123;site_id&#125;/env. |
| `netlify_env_var_update` | Update an environment variable - PATCH /sites/&#123;site_id&#125;/env/&#123;key&#125;. |
| `netlify_env_var_delete` | Delete an environment variable - DELETE /sites/&#123;site_id&#125;/env/&#123;key&#125;. |
| `netlify_forms_list` | List forms for a site - GET /sites/&#123;site_id&#125;/forms. |
| `netlify_form_get` | Get one form - GET /sites/&#123;site_id&#125;/forms/&#123;form_id&#125;. |
| `netlify_submissions_list` | List form submissions - GET /sites/&#123;site_id&#125;/forms/&#123;form_id&#125;/submissions. |
| `netlify_submission_get` | Get one submission - GET /sites/&#123;site_id&#125;/submissions/&#123;submission_id&#125;. |
| `netlify_submission_delete` | Delete a submission - DELETE /sites/&#123;site_id&#125;/submissions/&#123;submission_id&#125;. |
| `netlify_dns_zones_list` | List DNS zones - GET /dns_zones. |
| `netlify_dns_zone_get` | Get one DNS zone - GET /dns_zones/&#123;zone_id&#125;. |
| `netlify_dns_records_list` | List DNS records in a zone - GET /dns_zones/&#123;zone_id&#125;/dns_records. |
| `netlify_dns_record_get` | Get one DNS record - GET /dns_zones/&#123;zone_id&#125;/dns_records/&#123;record_id&#125;. |
| `netlify_dns_record_create` | Create a DNS record - POST /dns_zones/&#123;zone_id&#125;/dns_records. |
| `netlify_dns_record_update` | Update a DNS record - PATCH /dns_zones/&#123;zone_id&#125;/dns_records/&#123;record_id&#125;. |
| `netlify_dns_record_delete` | Delete a DNS record - DELETE /dns_zones/&#123;zone_id&#125;/dns_records/&#123;record_id&#125;. |
| `netlify_hooks_list` | List deploy hooks for a site - GET /sites/&#123;site_id&#125;/hooks. |
| `netlify_hook_get` | Get one deploy hook - GET /sites/&#123;site_id&#125;/hooks/&#123;hook_id&#125;. |
| `netlify_hook_create` | Create a deploy hook - POST /sites/&#123;site_id&#125;/hooks. |
| `netlify_hook_update` | Update a deploy hook - PATCH /sites/&#123;site_id&#125;/hooks/&#123;hook_id&#125;. |
| `netlify_hook_delete` | Delete a deploy hook - DELETE /sites/&#123;site_id&#125;/hooks/&#123;hook_id&#125;. |
| `netlify_snippets_list` | List snippets for a site - GET /sites/&#123;site_id&#125;/snippets. |
| `netlify_snippet_get` | Get one snippet - GET /sites/&#123;site_id&#125;/snippets/&#123;snippet_id&#125;. |
| `netlify_snippet_create` | Create a snippet - POST /sites/&#123;site_id&#125;/snippets. |
| `netlify_snippet_update` | Update a snippet - PATCH /sites/&#123;site_id&#125;/snippets/&#123;snippet_id&#125;. |
| `netlify_snippet_delete` | Delete a snippet - DELETE /sites/&#123;site_id&#125;/snippets/&#123;snippet_id&#125;. |
| `netlify_members_list` | List team members - GET /accounts/&#123;account_slug&#125;/members. |
| `netlify_member_get` | Get one team member - GET /accounts/&#123;account_slug&#125;/members/&#123;member_id&#125;. |
| `netlify_member_create` | Invite a team member - POST /accounts/&#123;account_slug&#125;/members. |
| `netlify_member_update` | Update a team member - PATCH /accounts/&#123;account_slug&#125;/members/&#123;member_id&#125;. |
| `netlify_member_delete` | Remove a team member - DELETE /accounts/&#123;account_slug&#125;/members/&#123;member_id&#125;. |
| `netlify_account_get` | Get authenticated account info - GET /accounts. |
| `netlify_account_update` | Update account info - PATCH /accounts. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`NETLIFY_API_TOKEN`** - Netlify - User settings - Applications - Personal access tokens - New token. (https://app.netlify.com/user/applications#personal-access-tokens)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `NETLIFY_API_TOKEN` | Netlify - User settings - Applications - Personal access tokens - New token. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [Netlify API documentation](https://docs.netlify.com/api/get-started)
