diff --git a/CHANGES b/CHANGES
index fbf8ddb..bcd26b5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+0.22.0
+------
+
+* Add `passthrough` argument to `BaseResponse` object. See #557
+
 0.21.0
 ------
 
diff --git a/README.rst b/README.rst
index cd06dba..357bd76 100644
--- a/README.rst
+++ b/README.rst
@@ -1172,14 +1172,18 @@ need to allow an entire domain or path subtree to send requests:
     responses.add_passthru(re.compile("https://percy.io/\\w+"))
 
 
-Lastly, you can use the ``response.passthrough`` attribute on ``BaseResponse`` or
-use ``PassthroughResponse`` to enable a response to behave as a pass through.
+Lastly, you can use the ``passthrough`` argument of the ``Response`` object
+to force a response to behave as a pass through.
 
 .. code-block:: python
 
     # Enable passthrough for a single response
-    response = Response(responses.GET, "http://example.com", body="not used")
-    response.passthrough = True
+    response = Response(
+        responses.GET,
+        "http://example.com",
+        body="not used",
+        passthrough=True,
+    )
     responses.add(response)
 
     # Use PassthroughResponse
diff --git a/responses/__init__.py b/responses/__init__.py
index 9ab2570..30b9597 100644
--- a/responses/__init__.py
+++ b/responses/__init__.py
@@ -354,6 +354,8 @@ class BaseResponse(object):
         url: _URLPatternType,
         match_querystring: Union[bool, object] = None,
         match: "_MatcherIterable" = (),
+        *,
+        passthrough: bool = False,
     ) -> None:
         self.method: str = method
         # ensure the url has a default path set if the url is a string
@@ -366,6 +368,7 @@ class BaseResponse(object):
 
         self.match: "_MatcherIterable" = match
         self.call_count: int = 0
+        self.passthrough = passthrough
 
     def __eq__(self, other: Any) -> bool:
         if not isinstance(other, BaseResponse):
@@ -596,7 +599,8 @@ class CallbackResponse(BaseResponse):
 
 
 class PassthroughResponse(BaseResponse):
-    passthrough: bool = True
+    def __init__(self, *args: Any, **kwargs: Any):
+        super().__init__(*args, passthrough=True, **kwargs)
 
 
 class OriginalResponseShim(object):

diff --git a/responses/tests/test_responses.py b/responses/tests/test_responses.py
index 4dd93f0..083fced 100644
--- a/responses/tests/test_responses.py
+++ b/responses/tests/test_responses.py
@@ -1589,6 +1589,31 @@ def test_passthrough_flag(httpserver):
     assert_reset()
 
 
+def test_passthrough_kwarg(httpserver):
+    httpserver.serve_content("OK", headers={"Content-Type": "text/plain"})
+
+    def configure_response(passthrough):
+        responses.get(httpserver.url, body="MOCK", passthrough=passthrough)
+
+    @responses.activate
+    def run_passthrough():
+        configure_response(passthrough=True)
+        resp = requests.get(httpserver.url)
+        assert_response(resp, "OK")
+
+    @responses.activate
+    def run_mocked():
+        configure_response(passthrough=False)
+        resp = requests.get(httpserver.url)
+        assert_response(resp, "MOCK")
+
+    run_mocked()
+    assert_reset()
+
+    run_passthrough()
+    assert_reset()
+
+
 def test_passthrough_response(httpserver):
     httpserver.serve_content("OK", headers={"Content-Type": "text/plain"})
 

Feature request: allow configuration of passthrough during BaseResponse construction
### Use case

I'm working on a Python test suite that returns mock data for HTTP GET requests, and it has an 'online' mode during which no mocking of requests occurs.

I'd like to migrate the test suite to use `responses`, and would like to retain the online test functionality while also allowing for the assert-on-all-requests logic and other functionality.

This is already achievable using the [`passthrough`](https://github.com/getsentry/responses/tree/3d83a88382bf5cedefbbab3986bbfeeb07883fac#passing-through-real-requests) functionality -- but it's _not_ currently possible to provide `passthrough` as a keyword argument to `responses.add` nor the [shortcut methods](https://github.com/getsentry/responses/tree/3d83a88382bf5cedefbbab3986bbfeeb07883fac#shortcuts).

### Illustration

Providing that keyword argument on `BaseResponse` would allow simplification of code that looks like this:

```py
with responses.RequestsMock() as rsps:
    for url, content in mock_requests:
        rsp = responses.Response(responses.GET, url, body=content)  # note: temporary local variable declared to hold a response
        rsp.passthrough = running_online
        rsps.add(rsp)
```

...to code that looks like this:

```py
with responses.RequestsMock() as rsps:
    for url, content in mock_requests:
        rsps.get(url=url, body=content, passthrough=running_online)
```

Not a huge readability saving, perhaps - although I think it may be relatively straightforward to support, and I haven't yet thought of any downsides (but perhaps it isn't, for some intentional reason? - constructor argument pollution?).  I'll offer a pull request with a potential implementation.

### Related

Extends #399.
responses/tests/test_responses.py::test_passthrough_kwarg
responses/tests/test_responses.py::test_response responses/tests/test_responses.py::test_response_encoded responses/tests/test_responses.py::test_response_with_instance responses/tests/test_responses.py::test_replace[http://example.com/two-http://example.com/two] responses/tests/test_responses.py::test_replace[original1-replacement1] responses/tests/test_responses.py::test_replace[http://example\\.com/two-http://example\\.com/two] responses/tests/test_responses.py::test_replace_error[http://example.com/one-http://example\\.com/one] responses/tests/test_responses.py::test_replace_error[http://example\\.com/one-http://example.com/one] responses/tests/test_responses.py::test_replace_response_object_error responses/tests/test_responses.py::test_upsert_replace[http://example.com/two-http://example.com/two] responses/tests/test_responses.py::test_upsert_replace[original1-replacement1] responses/tests/test_responses.py::test_upsert_replace[http://example\\.com/two-http://example\\.com/two] responses/tests/test_responses.py::test_upsert_add[http://example.com/two-http://example.com/two] responses/tests/test_responses.py::test_upsert_add[original1-replacement1] responses/tests/test_responses.py::test_upsert_add[http://example\\.com/two-http://example\\.com/two] responses/tests/test_responses.py::test_remove responses/tests/test_responses.py::test_response_equality[args10-kwargs10-args20-kwargs20-True] responses/tests/test_responses.py::test_response_equality[args11-kwargs11-args21-kwargs21-False] responses/tests/test_responses.py::test_response_equality[args12-kwargs12-args22-kwargs22-False] responses/tests/test_responses.py::test_response_equality[args13-kwargs13-args23-kwargs23-True] responses/tests/test_responses.py::test_response_equality_different_objects responses/tests/test_responses.py::test_connection_error responses/tests/test_responses.py::test_match_querystring responses/tests/test_responses.py::test_match_querystring_empty responses/tests/test_responses.py::test_match_querystring_error responses/tests/test_responses.py::test_match_querystring_regex responses/tests/test_responses.py::test_match_querystring_error_regex responses/tests/test_responses.py::test_match_querystring_auto_activates responses/tests/test_responses.py::test_match_querystring_missing_key responses/tests/test_responses.py::test_accept_string_body responses/tests/test_responses.py::test_accept_json_body responses/tests/test_responses.py::test_no_content_type responses/tests/test_responses.py::test_arbitrary_status_code responses/tests/test_responses.py::test_throw_connection_error_explicit responses/tests/test_responses.py::test_callback responses/tests/test_responses.py::test_deprecated_package_attributes responses/tests/test_responses.py::test_callback_deprecated_stream_argument responses/tests/test_responses.py::test_callback_deprecated_match_querystring_argument responses/tests/test_responses.py::test_callback_match_querystring_default_false responses/tests/test_responses.py::test_callback_exception_result responses/tests/test_responses.py::test_callback_exception_body responses/tests/test_responses.py::test_callback_no_content_type responses/tests/test_responses.py::test_callback_content_type_dict responses/tests/test_responses.py::test_callback_matchers responses/tests/test_responses.py::test_callback_matchers_fail responses/tests/test_responses.py::test_callback_content_type_tuple responses/tests/test_responses.py::test_regular_expression_url responses/tests/test_responses.py::test_base_response_get_response responses/tests/test_responses.py::test_custom_adapter responses/tests/test_responses.py::test_responses_as_context_manager responses/tests/test_responses.py::test_activate_doesnt_change_signature responses/tests/test_responses.py::TestFixtures::test_function responses/tests/test_responses.py::TestFixtures::test_function_decorated responses/tests/test_responses.py::test_activate_mock_interaction responses/tests/test_responses.py::test_activate_doesnt_change_signature_with_return_type responses/tests/test_responses.py::test_activate_doesnt_change_signature_for_method responses/tests/test_responses.py::test_response_cookies responses/tests/test_responses.py::test_response_cookies_secure responses/tests/test_responses.py::test_response_cookies_multiple responses/tests/test_responses.py::test_response_cookies_session[True-True] responses/tests/test_responses.py::test_response_cookies_session[True-False] responses/tests/test_responses.py::test_response_cookies_session[True-None] responses/tests/test_responses.py::test_response_cookies_session[False-True] responses/tests/test_responses.py::test_response_cookies_session[False-False] responses/tests/test_responses.py::test_response_cookies_session[False-None] responses/tests/test_responses.py::test_response_cookies_session[None-True] responses/tests/test_responses.py::test_response_cookies_session[None-False] responses/tests/test_responses.py::test_response_cookies_session[None-None] responses/tests/test_responses.py::test_response_callback responses/tests/test_responses.py::test_response_filebody responses/tests/test_responses.py::test_use_stream_twice_to_double_raw_io responses/tests/test_responses.py::test_assert_all_requests_are_fired responses/tests/test_responses.py::test_allow_redirects_samehost responses/tests/test_responses.py::test_path_segments responses/tests/test_responses.py::test_handles_unicode_querystring responses/tests/test_responses.py::test_handles_unicode_url responses/tests/test_responses.py::test_handles_unicode_body responses/tests/test_responses.py::test_handles_buffered_reader_body responses/tests/test_responses.py::test_headers responses/tests/test_responses.py::test_content_length_error responses/tests/test_responses.py::test_stream_with_none_chunk_size responses/tests/test_responses.py::test_legacy_adding_headers responses/tests/test_responses.py::test_legacy_adding_headers_with_content_type responses/tests/test_responses.py::test_auto_calculate_content_length_string_body responses/tests/test_responses.py::test_auto_calculate_content_length_bytes_body responses/tests/test_responses.py::test_auto_calculate_content_length_json_body responses/tests/test_responses.py::test_auto_calculate_content_length_unicode_body responses/tests/test_responses.py::test_auto_calculate_content_length_doesnt_work_for_buffered_reader_body responses/tests/test_responses.py::test_multiple_responses responses/tests/test_responses.py::test_multiple_responses_intermixed responses/tests/test_responses.py::test_multiple_urls responses/tests/test_responses.py::test_multiple_methods responses/tests/test_responses.py::test_passthrough_flag responses/tests/test_responses.py::test_passthrough_response responses/tests/test_responses.py::test_passthrough_response_stream responses/tests/test_responses.py::test_passthru_prefixes responses/tests/test_responses.py::test_passthru responses/tests/test_responses.py::test_passthru_regex responses/tests/test_responses.py::test_passthru_does_not_persist_across_tests responses/tests/test_responses.py::test_method_named_param responses/tests/test_responses.py::test_passthru_unicode responses/tests/test_responses.py::test_custom_target responses/tests/test_responses.py::test_request_param[http://example.com] responses/tests/test_responses.py::test_request_param[http://example.com/some/path] responses/tests/test_responses.py::test_request_param[http://example.com/other/path/] responses/tests/test_responses.py::test_request_param_with_multiple_values_for_the_same_key responses/tests/test_responses.py::test_assert_call_count[http://example.com] responses/tests/test_responses.py::test_assert_call_count[http://example.com?hello=world] responses/tests/test_responses.py::test_call_count_with_matcher responses/tests/test_responses.py::test_call_count_without_matcher responses/tests/test_responses.py::test_fail_request_error responses/tests/test_responses.py::test_response_representations[response_params0-<Response(url='http://example.com/' responses/tests/test_responses.py::test_response_representations[response_params1-<Response(url='http://another-domain.com/' responses/tests/test_responses.py::test_response_representations[response_params2-<Response(url='http://abcd.com/' responses/tests/test_responses.py::test_mocked_responses_list_registered responses/tests/test_responses.py::test_rfc_compliance[http://service-A/foo?q=fizz-http://service-a/foo?q=fizz] responses/tests/test_responses.py::test_rfc_compliance[http://service-a/foo-http://service-A/foo] responses/tests/test_responses.py::test_rfc_compliance[http://someHost-AwAy/-http://somehost-away/] responses/tests/test_responses.py::test_rfc_compliance[http://fizzbuzz/foo-http://fizzbuzz/foo] responses/tests/test_responses.py::test_requests_between_add responses/tests/test_responses.py::test_responses_reuse responses/tests/test_responses.py::TestStrictWrapper::test_strict_wrapper responses/tests/test_responses.py::TestStrictWrapper::test_nested_decorators[True] responses/tests/test_responses.py::TestStrictWrapper::test_nested_decorators[False] responses/tests/test_responses.py::TestStrictWrapper::test_nested_decorators[None] responses/tests/test_responses.py::TestMultipleWrappers::test_wrapped responses/tests/test_responses.py::TestMultipleWrappers::test_call_another_wrapped_function responses/tests/test_responses.py::TestMultipleWrappers::test_mock_not_leaked responses/tests/test_responses.py::TestShortcuts::test_delete responses/tests/test_responses.py::TestShortcuts::test_get responses/tests/test_responses.py::TestShortcuts::test_head responses/tests/test_responses.py::TestShortcuts::test_options responses/tests/test_responses.py::TestShortcuts::test_patch responses/tests/test_responses.py::TestShortcuts::test_post responses/tests/test_responses.py::TestShortcuts::test_put responses/tests/test_responses.py::test_reset_in_the_middle responses/tests/test_responses.py::test_redirect