Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
690777f
chore(internal): version bump
stainless-app[bot] May 16, 2025
985f2fe
chore(docs): grammar improvements
stainless-app[bot] May 22, 2025
88ce3e3
chore: improve publish-npm script --latest tag logic
stainless-app[bot] May 28, 2025
b2cca2c
codegen metadata
stainless-app[bot] Jun 3, 2025
24c7006
chore(docs): use top-level-await in example snippets
stainless-app[bot] Jun 4, 2025
87c245e
fix: publish script — handle NPM errors correctly
stainless-app[bot] Jun 14, 2025
6ec9d38
chore(internal): make base APIResource abstract
stainless-app[bot] Jun 14, 2025
0c69436
feat(client): add support for endpoint-specific base URLs
stainless-app[bot] Jun 17, 2025
132825d
chore(ci): enable for pull requests
stainless-app[bot] Jun 17, 2025
3e0bfd3
refactor(types): replace Record with mapped types
stainless-app[bot] Jun 24, 2025
8e59beb
fix(ci): release-doctor — report correct token name
stainless-app[bot] Jun 27, 2025
a166050
chore(ci): only run for pushes and fork pull requests
stainless-app[bot] Jun 28, 2025
0a36097
codegen metadata
stainless-app[bot] Jun 30, 2025
ef5f62b
feat(api): api update
stainless-app[bot] Jul 2, 2025
8d864d1
chore: mention unit type in timeout docs
stainless-app[bot] Jul 3, 2025
bfe46e8
fix(client): don't send `Content-Type` for bodyless methods
stainless-app[bot] Jul 3, 2025
9a02a7d
codegen metadata
stainless-app[bot] Jul 3, 2025
f8111cb
chore: make some internal functions async
stainless-app[bot] Jul 10, 2025
0ec3383
feat(api): api update
stainless-app[bot] Jul 10, 2025
0efabac
feat(mcp): support filtering tool results by a jq expression
stainless-app[bot] Jul 11, 2025
90c9185
feat(api): api update
stainless-app[bot] Jul 16, 2025
d57f23e
feat(api): api update
stainless-app[bot] Jul 17, 2025
ddf4087
chore(internal): remove redundant imports config
stainless-app[bot] Jul 30, 2025
2fb47ce
chore(internal): move publish config
stainless-app[bot] Aug 7, 2025
d4ac1f1
chore: update @stainless-api/prism-cli to v5.15.0
stainless-app[bot] Aug 9, 2025
a549d56
chore(internal): update comment in script
stainless-app[bot] Aug 9, 2025
b657cbe
chore(deps): update dependency node-fetch to v2.6.13
stainless-app[bot] Aug 16, 2025
29b57d4
chore(internal): formatting change
stainless-app[bot] Aug 16, 2025
2cd3501
chore: update CI script
stainless-app[bot] Aug 23, 2025
66977dc
codegen metadata
stainless-app[bot] Aug 27, 2025
59bb2a5
feat(api): manual updates
stainless-app[bot] Sep 4, 2025
d661869
feat(api): api update
stainless-app[bot] Sep 4, 2025
d80e4ac
feat(api): api update
stainless-app[bot] Sep 4, 2025
3b859a2
codegen metadata
stainless-app[bot] Sep 4, 2025
36486ca
codegen metadata
stainless-app[bot] Sep 5, 2025
b2ac95c
feat(api): manual updates
stainless-app[bot] Sep 5, 2025
6900feb
codegen metadata
stainless-app[bot] Sep 5, 2025
3348e1a
feat(api): api update
stainless-app[bot] Sep 5, 2025
4fe59cd
chore: ci build action
stainless-app[bot] Sep 6, 2025
6108dc5
fix: coerce nullable values to undefined
stainless-app[bot] Sep 9, 2025
ea703c8
chore: do not install brew dependencies in ./scripts/bootstrap by def…
stainless-app[bot] Sep 20, 2025
44cd7a6
perf: faster formatting
stainless-app[bot] Sep 26, 2025
5b65006
release: 2.7.0
stainless-app[bot] Sep 26, 2025
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
Prev Previous commit
Next Next commit
feat(api): api update
  • Loading branch information
stainless-app[bot] committed Jul 17, 2025
commit d57f23ea6d04a61dd523fd9cfea3bba138914483
4 changes: 2 additions & 2 deletions 4 .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 18
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fbrowserbase-86464130af6afb678b92cd7a412035fa95d0f806eb35d5cfc1902c0d417c44ca.yml
openapi_spec_hash: 9df21af9ca1497c2a481936ba585290d
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fbrowserbase-3d350e6cd04452a1654fdb7a93fa7e8dbbf7706273ae7c21818efce9dcf9bbfe.yml
openapi_spec_hash: 25beffd2761e5414d0cb32f74a969a38
config_hash: b3ca4ec5b02e5333af51ebc2e9fdef1b
20 changes: 10 additions & 10 deletions 20 tests/api-resources/contexts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const client = new Browserbase({

describe('resource contexts', () => {
test('create: only required params', async () => {
const responsePromise = client.contexts.create({ projectId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });
const responsePromise = client.contexts.create({ projectId: 'projectId' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -21,11 +21,11 @@ describe('resource contexts', () => {
});

test('create: required and optional params', async () => {
const response = await client.contexts.create({ projectId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });
const response = await client.contexts.create({ projectId: 'projectId' });
});

test('retrieve', async () => {
const responsePromise = client.contexts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.contexts.retrieve('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -37,13 +37,13 @@ describe('resource contexts', () => {

test('retrieve: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.contexts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.contexts.retrieve('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});

test('update', async () => {
const responsePromise = client.contexts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.contexts.update('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -55,8 +55,8 @@ describe('resource contexts', () => {

test('update: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.contexts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.contexts.update('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});
});
18 changes: 8 additions & 10 deletions 18 tests/api-resources/extensions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ describe('resource extensions', () => {
});

test('retrieve', async () => {
const responsePromise = client.extensions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.extensions.retrieve('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -41,15 +41,13 @@ describe('resource extensions', () => {

test('retrieve: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.extensions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
path: '/_stainless_unknown_path',
}),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.extensions.retrieve('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});

test('delete', async () => {
const responsePromise = client.extensions.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.extensions.delete('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -61,8 +59,8 @@ describe('resource extensions', () => {

test('delete: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.extensions.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.extensions.delete('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});
});
16 changes: 8 additions & 8 deletions 16 tests/api-resources/projects.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const client = new Browserbase({

describe('resource projects', () => {
test('retrieve', async () => {
const responsePromise = client.projects.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.projects.retrieve('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -22,9 +22,9 @@ describe('resource projects', () => {

test('retrieve: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.projects.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.projects.retrieve('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});

test('list', async () => {
Expand All @@ -46,7 +46,7 @@ describe('resource projects', () => {
});

test('usage', async () => {
const responsePromise = client.projects.usage('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.projects.usage('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -58,8 +58,8 @@ describe('resource projects', () => {

test('usage: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.projects.usage('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.projects.usage('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});
});
8 changes: 3 additions & 5 deletions 8 tests/api-resources/sessions/downloads.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ const client = new Browserbase({
describe('resource downloads', () => {
test('list: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.sessions.downloads.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
path: '/_stainless_unknown_path',
}),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.sessions.downloads.list('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});
});
8 changes: 4 additions & 4 deletions 8 tests/api-resources/sessions/logs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const client = new Browserbase({

describe('resource logs', () => {
test('list', async () => {
const responsePromise = client.sessions.logs.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.sessions.logs.list('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -22,8 +22,8 @@ describe('resource logs', () => {

test('list: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.sessions.logs.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.sessions.logs.list('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});
});
6 changes: 2 additions & 4 deletions 6 tests/api-resources/sessions/recording.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const client = new Browserbase({

describe('resource recording', () => {
test('retrieve', async () => {
const responsePromise = client.sessions.recording.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.sessions.recording.retrieve('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -23,9 +23,7 @@ describe('resource recording', () => {
test('retrieve: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.sessions.recording.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
path: '/_stainless_unknown_path',
}),
client.sessions.recording.retrieve('id', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
});
});
34 changes: 17 additions & 17 deletions 34 tests/api-resources/sessions/sessions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const client = new Browserbase({

describe('resource sessions', () => {
test('create: only required params', async () => {
const responsePromise = client.sessions.create({ projectId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });
const responsePromise = client.sessions.create({ projectId: 'projectId' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -22,14 +22,14 @@ describe('resource sessions', () => {

test('create: required and optional params', async () => {
const response = await client.sessions.create({
projectId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
projectId: 'projectId',
browserSettings: {
advancedStealth: true,
blockAds: true,
captchaImageSelector: 'captchaImageSelector',
captchaInputSelector: 'captchaInputSelector',
context: { id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', persist: true },
extensionId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
context: { id: 'id', persist: true },
extensionId: 'extensionId',
fingerprint: {
browsers: ['chrome'],
devices: ['desktop'],
Expand All @@ -43,7 +43,7 @@ describe('resource sessions', () => {
solveCaptchas: true,
viewport: { height: 0, width: 0 },
},
extensionId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
extensionId: 'extensionId',
keepAlive: true,
proxies: [
{
Expand All @@ -59,7 +59,7 @@ describe('resource sessions', () => {
});

test('retrieve', async () => {
const responsePromise = client.sessions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.sessions.retrieve('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -71,14 +71,14 @@ describe('resource sessions', () => {

test('retrieve: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.sessions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.sessions.retrieve('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});

test('update: only required params', async () => {
const responsePromise = client.sessions.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
projectId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
const responsePromise = client.sessions.update('id', {
projectId: 'projectId',
status: 'REQUEST_RELEASE',
});
const rawResponse = await responsePromise.asResponse();
Expand All @@ -91,8 +91,8 @@ describe('resource sessions', () => {
});

test('update: required and optional params', async () => {
const response = await client.sessions.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
projectId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
const response = await client.sessions.update('id', {
projectId: 'projectId',
status: 'REQUEST_RELEASE',
});
});
Expand Down Expand Up @@ -123,7 +123,7 @@ describe('resource sessions', () => {
});

test('debug', async () => {
const responsePromise = client.sessions.debug('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const responsePromise = client.sessions.debug('id');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
Expand All @@ -135,8 +135,8 @@ describe('resource sessions', () => {

test('debug: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.sessions.debug('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { path: '/_stainless_unknown_path' }),
).rejects.toThrow(Browserbase.NotFoundError);
await expect(client.sessions.debug('id', { path: '/_stainless_unknown_path' })).rejects.toThrow(
Browserbase.NotFoundError,
);
});
});
4 changes: 2 additions & 2 deletions 4 tests/api-resources/sessions/uploads.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const client = new Browserbase({

describe('resource uploads', () => {
test('create: only required params', async () => {
const responsePromise = client.sessions.uploads.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
const responsePromise = client.sessions.uploads.create('id', {
file: await toFile(Buffer.from('# my file contents'), 'README.md'),
});
const rawResponse = await responsePromise.asResponse();
Expand All @@ -23,7 +23,7 @@ describe('resource uploads', () => {
});

test('create: required and optional params', async () => {
const response = await client.sessions.uploads.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
const response = await client.sessions.uploads.create('id', {
file: await toFile(Buffer.from('# my file contents'), 'README.md'),
});
});
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.