Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.11.0"
".": "1.12.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 23
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-b2831c9c836f039762834825afdc20569587a825d29ac5c3748c78b009bf059b.yml
openapi_spec_hash: dd85a934900cb6583f12ebf6117be884
config_hash: 40fbac80e24faaa0dc19e93368bcd821
configured_endpoints: 27
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-9bab373fc62ce19147560ed3ec29fe09ad59d9a5b406d9ed21a22f15a511d9cb.yml
openapi_spec_hash: 518fdefff1eabc4bb8a3b54ddf7fa293
config_hash: d4b0c534eaf7665ea25168e0e824c9d3
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 1.12.0 (2026-06-05)

Full Changelog: [v1.11.0...v1.12.0](https://github.com/browserbase/sdk-python/compare/v1.11.0...v1.12.0)

### Features

* [CORE-2194][apps/api] Add BYOC (cert) CRUD to SDKs ([5ed9746](https://github.com/browserbase/sdk-python/commit/5ed9746938237ae4eaa78f8652a9b576e6be0e7c))

## 1.11.0 (2026-05-20)

Full Changelog: [v1.10.0...v1.11.0](https://github.com/browserbase/sdk-python/compare/v1.10.0...v1.11.0)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ from browserbase import Browserbase

client = Browserbase()

client.extensions.create(
client.certificates.create(
file=Path("/path/to/file"),
)
```
Expand Down
15 changes: 15 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
# Certificates

Types:

```python
from browserbase.types import Certificate, CertificateListResponse
```

Methods:

- <code title="post /v1/certificates">client.certificates.<a href="./src/browserbase/resources/certificates.py">create</a>(\*\*<a href="src/browserbase/types/certificate_create_params.py">params</a>) -> <a href="./src/browserbase/types/certificate.py">Certificate</a></code>
- <code title="get /v1/certificates/{id}">client.certificates.<a href="./src/browserbase/resources/certificates.py">retrieve</a>(id) -> <a href="./src/browserbase/types/certificate.py">Certificate</a></code>
- <code title="get /v1/certificates">client.certificates.<a href="./src/browserbase/resources/certificates.py">list</a>() -> <a href="./src/browserbase/types/certificate_list_response.py">CertificateListResponse</a></code>
- <code title="delete /v1/certificates/{id}">client.certificates.<a href="./src/browserbase/resources/certificates.py">delete</a>(id) -> None</code>

# Contexts

Types:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "browserbase"
version = "1.11.0"
version = "1.12.0"
description = "The official Python library for the Browserbase API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
39 changes: 38 additions & 1 deletion src/browserbase/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,13 @@
)

if TYPE_CHECKING:
from .resources import search, contexts, projects, sessions, fetch_api, extensions
from .resources import search, contexts, projects, sessions, fetch_api, extensions, certificates
from .resources.search import SearchResource, AsyncSearchResource
from .resources.contexts import ContextsResource, AsyncContextsResource
from .resources.projects import ProjectsResource, AsyncProjectsResource
from .resources.fetch_api import FetchAPIResource, AsyncFetchAPIResource
from .resources.extensions import ExtensionsResource, AsyncExtensionsResource
from .resources.certificates import CertificatesResource, AsyncCertificatesResource
from .resources.sessions.sessions import SessionsResource, AsyncSessionsResource

__all__ = [
Expand Down Expand Up @@ -119,6 +120,12 @@ def __init__(
_strict_response_validation=_strict_response_validation,
)

@cached_property
def certificates(self) -> CertificatesResource:
from .resources.certificates import CertificatesResource

return CertificatesResource(self)

@cached_property
def contexts(self) -> ContextsResource:
from .resources.contexts import ContextsResource
Expand Down Expand Up @@ -332,6 +339,12 @@ def __init__(
_strict_response_validation=_strict_response_validation,
)

@cached_property
def certificates(self) -> AsyncCertificatesResource:
from .resources.certificates import AsyncCertificatesResource

return AsyncCertificatesResource(self)

@cached_property
def contexts(self) -> AsyncContextsResource:
from .resources.contexts import AsyncContextsResource
Expand Down Expand Up @@ -487,6 +500,12 @@ class BrowserbaseWithRawResponse:
def __init__(self, client: Browserbase) -> None:
self._client = client

@cached_property
def certificates(self) -> certificates.CertificatesResourceWithRawResponse:
from .resources.certificates import CertificatesResourceWithRawResponse

return CertificatesResourceWithRawResponse(self._client.certificates)

@cached_property
def contexts(self) -> contexts.ContextsResourceWithRawResponse:
from .resources.contexts import ContextsResourceWithRawResponse
Expand Down Expand Up @@ -530,6 +549,12 @@ class AsyncBrowserbaseWithRawResponse:
def __init__(self, client: AsyncBrowserbase) -> None:
self._client = client

@cached_property
def certificates(self) -> certificates.AsyncCertificatesResourceWithRawResponse:
from .resources.certificates import AsyncCertificatesResourceWithRawResponse

return AsyncCertificatesResourceWithRawResponse(self._client.certificates)

@cached_property
def contexts(self) -> contexts.AsyncContextsResourceWithRawResponse:
from .resources.contexts import AsyncContextsResourceWithRawResponse
Expand Down Expand Up @@ -573,6 +598,12 @@ class BrowserbaseWithStreamedResponse:
def __init__(self, client: Browserbase) -> None:
self._client = client

@cached_property
def certificates(self) -> certificates.CertificatesResourceWithStreamingResponse:
from .resources.certificates import CertificatesResourceWithStreamingResponse

return CertificatesResourceWithStreamingResponse(self._client.certificates)

@cached_property
def contexts(self) -> contexts.ContextsResourceWithStreamingResponse:
from .resources.contexts import ContextsResourceWithStreamingResponse
Expand Down Expand Up @@ -616,6 +647,12 @@ class AsyncBrowserbaseWithStreamedResponse:
def __init__(self, client: AsyncBrowserbase) -> None:
self._client = client

@cached_property
def certificates(self) -> certificates.AsyncCertificatesResourceWithStreamingResponse:
from .resources.certificates import AsyncCertificatesResourceWithStreamingResponse

return AsyncCertificatesResourceWithStreamingResponse(self._client.certificates)

@cached_property
def contexts(self) -> contexts.AsyncContextsResourceWithStreamingResponse:
from .resources.contexts import AsyncContextsResourceWithStreamingResponse
Expand Down
2 changes: 1 addition & 1 deletion src/browserbase/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "browserbase"
__version__ = "1.11.0" # x-release-please-version
__version__ = "1.12.0" # x-release-please-version
14 changes: 14 additions & 0 deletions src/browserbase/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,22 @@
ExtensionsResourceWithStreamingResponse,
AsyncExtensionsResourceWithStreamingResponse,
)
from .certificates import (
CertificatesResource,
AsyncCertificatesResource,
CertificatesResourceWithRawResponse,
AsyncCertificatesResourceWithRawResponse,
CertificatesResourceWithStreamingResponse,
AsyncCertificatesResourceWithStreamingResponse,
)

__all__ = [
"CertificatesResource",
"AsyncCertificatesResource",
"CertificatesResourceWithRawResponse",
"AsyncCertificatesResourceWithRawResponse",
"CertificatesResourceWithStreamingResponse",
"AsyncCertificatesResourceWithStreamingResponse",
"ContextsResource",
"AsyncContextsResource",
"ContextsResourceWithRawResponse",
Expand Down
Loading