# `CipaWebFiltering`
[🔗](https://github.com/explainableaixai/cipawebfiltering-elixir/blob/main/lib/cipawebfiltering.ex#L1)

Elixir client for the CIPA Web Filtering lookup API at https://www.cipawebfiltering.com/api/v1/ .

    client = CipaWebFiltering.new(System.fetch_env!("CWF_API_KEY"))
    {:ok, r} = CipaWebFiltering.classify(client, "example.com")
    CipaWebFiltering.Policy.blocks?(CipaWebFiltering.Policy.statutory_core(), r.categories)

Functions return `{:ok, value}` or `{:error, %CipaWebFiltering.Error{}}`.

# `t`

```elixir
@type t() :: %CipaWebFiltering{api_key: term(), base_url: term(), timeout: term()}
```

# `account_status`

Database subscribers: key status and plan.

# `batch_max`

Largest batch per request.

# `classify`

Classify one domain or URL. One credit.

# `classify_many`

Classify any number of domains, sent in chunks of 1,000. Returns `{:ok, results, credits}`.

# `database_info`

Database subscribers: last update time and size of the database file.

# `health`

Service health. Free.

# `new`

Build a client. Options: `:base_url`, `:timeout` (milliseconds).

# `split_categories`

Splits the API's "A|B|C" field, trimming and removing duplicates.

---

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