diff --git a/CHANGELOG.md b/CHANGELOG.md
index f4342a7..7bb833f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## Unreleased
+### Added
+- Ability to specify `proxies` for a `Service` definition so all calls to the service use the defined proxies
+
 ## [5.0.0] - 2019-12-02
 ### Removed
 - Support for Python 3.4 and 3.5 has been removed based on official Python support timelines and usage statistics
diff --git a/src/apiron/client.py b/src/apiron/client.py
index 2072201..9f6437f 100644
--- a/src/apiron/client.py
+++ b/src/apiron/client.py
@@ -246,6 +246,7 @@ def call(
         timeout=(timeout_spec.connection_timeout, timeout_spec.read_timeout),
         stream=getattr(endpoint, "streaming", False),
         allow_redirects=allow_redirects,
+        proxies=session.proxies or service.proxies,
     )
 
     logger.info(
diff --git a/src/apiron/service/base.py b/src/apiron/service/base.py
index dce776a..7847d85 100644
--- a/src/apiron/service/base.py
+++ b/src/apiron/service/base.py
@@ -19,6 +19,7 @@ class ServiceMeta(type):
 
 class ServiceBase(metaclass=ServiceMeta):
     required_headers = {}
+    proxies = {}
 
     @classmethod
     def get_hosts(cls):

Option to specify proxies
**Describe the bug**
I can't find a way to define proxy information, e.g. in requests we can say `requests.get('http://example.org', proxies=proxies)`

**To Reproduce**
Steps to reproduce the behavior: NA

**Expected behavior**
There should be an option to pass proxy information.

**What actually happened**
NA

**Screenshots**
NA

**Environment:**
 - OS: Any
 - Python version 3.7.5
 - `apiron` version 5.0.0

**Additional context**
I'm happy to contribute if you could walk me through the project.
diff --git a/tests/test_client.py b/tests/test_client.py
index 901b67a..e841289 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -128,6 +128,7 @@ class TestClient:
 
         mock_session = MockSession()
         mock_session.send.return_value = mock_response
+        mock_session.proxies = {}
         mock_get_adapted_session.return_value = mock_session
 
         client.call(service, mock_endpoint, timeout_spec=mock_timeout, logger=mock_logger)
@@ -138,6 +139,7 @@ class TestClient:
             timeout=(mock_timeout.connection_timeout, mock_timeout.read_timeout),
             stream=mock_endpoint.streaming,
             allow_redirects=True,
+            proxies=service.proxies,
         )
 
         mock_logger.info.assert_any_call("GET http://host1.biz/foo/")
@@ -153,6 +155,7 @@ class TestClient:
             timeout=(mock_timeout.connection_timeout, mock_timeout.read_timeout),
             stream=mock_endpoint.streaming,
             allow_redirects=True,
+            proxies=service.proxies,
         )
 
         mock_logger.info.assert_any_call("GET http://host1.biz/foo/")
@@ -169,6 +172,7 @@ class TestClient:
             timeout=(mock_timeout.connection_timeout, mock_timeout.read_timeout),
             stream=mock_endpoint.streaming,
             allow_redirects=True,
+            proxies=service.proxies,
         )
 
     @mock.patch("apiron.client.get_adapted_session")

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio pytest
apt-get update apt-get install -y gcc
3.7
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/ithaka/apiron.git@44348b630ac8c8c226e1c289c76430f567d61e10#egg=apiron
attrs @ file:///croot/attrs_1668696182826/work
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
coverage==7.2.7
execnet==2.0.2
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
idna==3.10
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1648562407465/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1671697413597/work
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pytest==7.1.2
pytest-asyncio==0.21.2
pytest-cov==4.1.0
pytest-mock==3.11.1
pytest-xdist==3.5.0
requests==2.31.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typing_extensions @ file:///croot/typing_extensions_1669924550328/work
urllib3==2.0.7
zipp @ file:///croot/zipp_1672387121353/work

name: apiron
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib-metadata=4.11.3=py37h06a4308_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - typing_extensions=4.4.0=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - apiron==5.0.0
      - charset-normalizer==3.4.1
      - coverage==7.2.7
      - execnet==2.0.2
      - idna==3.10
      - pytest-asyncio==0.21.2
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - pytest-xdist==3.5.0
      - requests==2.31.0
      - urllib3==2.0.7
prefix: /opt/conda/envs/apiron

tests/test_client.py::TestClient::test_call
tests/test_client.py::TestClient::test_get_adapted_session tests/test_client.py::TestClient::test_get_required_headers tests/test_client.py::TestClient::test_build_request_object_passes_arguments_to_request_constructor tests/test_client.py::TestClient::test_call_with_existing_session tests/test_client.py::TestClient::test_call_with_explicit_encoding tests/test_client.py::TestClient::test_build_request_object_raises_no_host_exception tests/test_client.py::TestClient::test_choose_host_returns_one_of_the_available_hosts tests/test_client.py::TestClient::test_choose_host_raises_exception_when_no_hosts_available tests/test_client.py::TestClient::test_call_when_raw_response_object_requested tests/test_client.py::test_build_url[http://biz.com-/endpoint-http://biz.com/endpoint] tests/test_client.py::test_build_url[http://biz.com/-endpoint-http://biz.com/endpoint] tests/test_client.py::test_build_url[http://biz.com/-/endpoint-http://biz.com/endpoint] tests/test_client.py::test_build_url[http://biz.com-endpoint-http://biz.com/endpoint] tests/test_client.py::test_build_url[http://biz.com/v2-/endpoint-http://biz.com/v2/endpoint] tests/test_client.py::test_build_url[http://biz.com/v2/-endpoint-http://biz.com/v2/endpoint] tests/test_client.py::test_build_url[http://biz.com/v2/-/endpoint-http://biz.com/v2/endpoint] tests/test_client.py::test_build_url[http://biz.com/v2-endpoint-http://biz.com/v2/endpoint]
src/apiron/service/base.py src/apiron/client.py CHANGELOG.md
src/apiron/service/base.py src/apiron/client.py CHANGELOG.md