defmodule LotContext.Client do @moduledoc "Minimal dependency-light LotContext API v1 client using Req." def new(api_key, opts \\ []) do Req.new( base_url: Keyword.get(opts, :base_url, "https://lotcontext.com/api/v1"), auth: {:bearer, api_key}, headers: [{"accept", "application/json"}], receive_timeout: Keyword.get(opts, :receive_timeout, 15_000) ) end def search(client, query, opts \\ []) do Req.get(client, url: "/properties", params: Keyword.merge([query: query], opts)) end def property(client, id), do: Req.get(client, url: "/properties/#{URI.encode(id)}") def changes(client, opts \\ []), do: Req.get(client, url: "/changes", params: opts) def coverage(client), do: Req.get(client, url: "/meta/coverage") end