Writing a Terraform provider sounds like a big-company activity, something HashiCorp partners do with a team and a roadmap. In practice, if your API has CRUD endpoints, the provider is mostly plumbing. Here is the map worth having before you start.

The running example throughout is the open-source Terraform provider for SMTPfast, a transactional email API. It is a small, complete provider you can read end to end as a reference:

https://github.com/smtpfast/terraform-provider-smtpfast

Why bother

Because your users' infrastructure already lives in Terraform. If creating a domain or an API key in your product requires clicking a dashboard, your product is the one manual step in their otherwise automated stack. A provider turns your product into: