# `Codat.API`
[🔗](https://github.com/iamkanishka/codat.git/blob/v1.0.0/lib/codat/api.ex#L1)

The `use Codat.API` macro that powers all Codat resource modules.

Generates standard CRUD, pagination, streaming, and write-model functions.

## Usage

    defmodule Codat.Accounting.Invoices do
      use Codat.API,
        base_path:  "/companies/:company_id/connections/:connection_id/push/invoices",
        list_path:  "/companies/:company_id/data/invoices",
        data_type:  "invoices",
        supports:   [:list, :get, :create, :update, :delete,
                     :get_create_model, :get_update_model, :stream, :fetch_all]
    end

# `page_response`

```elixir
@type page_response() :: {:ok, Codat.Pagination.t()} | {:error, Codat.Error.t()}
```

# `response`

```elixir
@type response() :: {:ok, map() | list() | nil} | {:error, Codat.Error.t()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
