---
title: Developers
url: /docs/developers
---

# Developers

Connect your own software to your business: make an API key, make your first call, and look up every operation an API key can call.

## Get started

- [Quickstart](/docs/developers/quickstart): Make an API key, see what it can call, and make your first call to the GrowLocal API: listing your business's tables.
- [Make an API key](/docs/developers/api-keys): An API key lets your own software, such as a script or an app you've built, reach one business through the GrowLocal API.

## Guides

- [Authentication](/docs/developers/authentication): Every request to the GrowLocal API carries an API key in its Authorization header and goes to the address of the business the key was made in.
- [Make a call and read the receipt](/docs/developers/calls-and-receipts): Every operation is called the same way: POST /invocations with what to call, an id you choose and the operation's input.
- [Retries without doing it twice](/docs/developers/retries): A change that fails in transit can be sent again safely: GrowLocal recognises the request by its operationId and answers with the receipt it already has instead of making the change a second time.
- [Pagination](/docs/developers/pagination): Long answers come a page at a time with a cursor for the next page: the catalogue, and the rows of a table.
- [Errors](/docs/developers/errors): The API says what went wrong in two ways.
- [Limits](/docs/developers/limits): How much one API key can do at once, and how big a request and its pages can be.

## API reference

- [List data tables](/docs/developers/reference/data-tables-query): data.tables.query@1
- [Read a list](/docs/developers/reference/data-view-source-query): data.view-source.query@1
- [Change items](/docs/developers/reference/data-collection-mutate): data.collection.mutate@1
- [Find automation runs](/docs/developers/reference/automation-runs): automation.runs@1
- [Automation run inspector](/docs/developers/reference/automation-run-inspector): automation.run-inspector@1
- [Read where an output came from](/docs/developers/reference/automation-output-source-read): automation.output-source.read@1
- [Suspend an automation run](/docs/developers/reference/automation-run-suspend): automation.run.suspend@1
- [Resume an automation run](/docs/developers/reference/automation-run-resume): automation.run.resume@1
- [Cancel an automation run](/docs/developers/reference/automation-run-cancel): automation.run.cancel@1
- [Read post destinations](/docs/developers/reference/social-destinations-read): social.destinations.read@1
- [Find posts saved by this work](/docs/developers/reference/social-editions-by-run): social.editions.by-run@1
- [Make posts from a recipe](/docs/developers/reference/social-posts-generate): social.posts.generate@1
- [Adopt social content](/docs/developers/reference/social-outputs-adopt): social.outputs.adopt@1
