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 @@
{
".": "0.29.0"
".": "0.30.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 25
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-30ba67603321f69c2ba0432320c45caa4727ebbe353bea8874c9e7db8b95b09e.yml
openapi_spec_hash: 7dc1fadcec32637e795f641a0e97c63e
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-9575a58bf027da9ca006bf34d9e24850ef2bbc6de0459b9fff6f26cf62e1d82d.yml
openapi_spec_hash: e68a98dbc0e29b45c42b3517eb554e6c
config_hash: f86a4e06ae5ed725aa79d58d7a8dc27c
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.30.0 (2026-06-06)

Full Changelog: [v0.29.0...v0.30.0](https://github.com/context-dot-dev/context-python-sdk/compare/v0.29.0...v0.30.0)

### Features

* **api:** api update ([2b2246d](https://github.com/context-dot-dev/context-python-sdk/commit/2b2246dfde12d977b938a90f4938014ef2695eb8))

## 0.29.0 (2026-06-01)

Full Changelog: [v0.28.0...v0.29.0](https://github.com/context-dot-dev/context-python-sdk/compare/v0.28.0...v0.29.0)
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 = "context.dev"
version = "0.29.0"
version = "0.30.0"
description = "The official Python library for the context.dev API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/context/dev/_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__ = "context.dev"
__version__ = "0.29.0" # x-release-please-version
__version__ = "0.30.0" # x-release-please-version
48 changes: 48 additions & 0 deletions src/context/dev/resources/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,7 @@ def web_scrape_html(
self,
*,
url: str,
headers: Dict[str, str] | Omit = omit,
include_frames: bool | Omit = omit,
max_age_ms: int | Omit = omit,
pdf: web_web_scrape_html_params.Pdf | Omit = omit,
Expand All @@ -630,6 +631,10 @@ def web_scrape_html(
Args:
url: Full URL to scrape (must include http:// or https:// protocol)

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

include_frames: When true, iframes are rendered inline into the returned HTML.

max_age_ms: Return a cached result if a prior scrape for the same parameters exists and is
Expand Down Expand Up @@ -665,6 +670,7 @@ def web_scrape_html(
query=maybe_transform(
{
"url": url,
"headers": headers,
"include_frames": include_frames,
"max_age_ms": max_age_ms,
"pdf": pdf,
Expand All @@ -682,6 +688,7 @@ def web_scrape_images(
*,
url: str,
enrichment: web_web_scrape_images_params.Enrichment | Omit = omit,
headers: Dict[str, str] | Omit = omit,
max_age_ms: int | Omit = omit,
timeout_ms: int | Omit = omit,
wait_for_ms: int | Omit = omit,
Expand All @@ -704,6 +711,10 @@ def web_scrape_images(
enrichment: Optional per-image processing, sent as deep-object query params such as
enrichment[resolution]=true.

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

max_age_ms: Reuse a cached result this many milliseconds old or newer. Default: 86400000 (1
day). Set to 0 to bypass cache. Maximum: 2592000000 (30 days).

Expand Down Expand Up @@ -733,6 +744,7 @@ def web_scrape_images(
{
"url": url,
"enrichment": enrichment,
"headers": headers,
"max_age_ms": max_age_ms,
"timeout_ms": timeout_ms,
"wait_for_ms": wait_for_ms,
Expand All @@ -747,6 +759,7 @@ def web_scrape_md(
self,
*,
url: str,
headers: Dict[str, str] | Omit = omit,
include_frames: bool | Omit = omit,
include_images: bool | Omit = omit,
include_links: bool | Omit = omit,
Expand All @@ -770,6 +783,10 @@ def web_scrape_md(
url: Full URL to scrape into LLM usable Markdown (must include http:// or https://
protocol)

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

include_frames: When true, the contents of iframes are rendered to Markdown.

include_images: Include image references in Markdown output
Expand Down Expand Up @@ -813,6 +830,7 @@ def web_scrape_md(
query=maybe_transform(
{
"url": url,
"headers": headers,
"include_frames": include_frames,
"include_images": include_images,
"include_links": include_links,
Expand All @@ -833,6 +851,7 @@ def web_scrape_sitemap(
self,
*,
domain: str,
headers: Dict[str, str] | Omit = omit,
max_links: int | Omit = omit,
timeout_ms: int | Omit = omit,
url_regex: str | Omit = omit,
Expand All @@ -849,6 +868,10 @@ def web_scrape_sitemap(
Args:
domain: Domain to build a sitemap for

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

max_links: Maximum number of links to return from the sitemap crawl. Defaults to 10,000.
Minimum is 1, maximum is 100,000.

Expand Down Expand Up @@ -877,6 +900,7 @@ def web_scrape_sitemap(
query=maybe_transform(
{
"domain": domain,
"headers": headers,
"max_links": max_links,
"timeout_ms": timeout_ms,
"url_regex": url_regex,
Expand Down Expand Up @@ -1454,6 +1478,7 @@ async def web_scrape_html(
self,
*,
url: str,
headers: Dict[str, str] | Omit = omit,
include_frames: bool | Omit = omit,
max_age_ms: int | Omit = omit,
pdf: web_web_scrape_html_params.Pdf | Omit = omit,
Expand All @@ -1472,6 +1497,10 @@ async def web_scrape_html(
Args:
url: Full URL to scrape (must include http:// or https:// protocol)

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

include_frames: When true, iframes are rendered inline into the returned HTML.

max_age_ms: Return a cached result if a prior scrape for the same parameters exists and is
Expand Down Expand Up @@ -1507,6 +1536,7 @@ async def web_scrape_html(
query=await async_maybe_transform(
{
"url": url,
"headers": headers,
"include_frames": include_frames,
"max_age_ms": max_age_ms,
"pdf": pdf,
Expand All @@ -1524,6 +1554,7 @@ async def web_scrape_images(
*,
url: str,
enrichment: web_web_scrape_images_params.Enrichment | Omit = omit,
headers: Dict[str, str] | Omit = omit,
max_age_ms: int | Omit = omit,
timeout_ms: int | Omit = omit,
wait_for_ms: int | Omit = omit,
Expand All @@ -1546,6 +1577,10 @@ async def web_scrape_images(
enrichment: Optional per-image processing, sent as deep-object query params such as
enrichment[resolution]=true.

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

max_age_ms: Reuse a cached result this many milliseconds old or newer. Default: 86400000 (1
day). Set to 0 to bypass cache. Maximum: 2592000000 (30 days).

Expand Down Expand Up @@ -1575,6 +1610,7 @@ async def web_scrape_images(
{
"url": url,
"enrichment": enrichment,
"headers": headers,
"max_age_ms": max_age_ms,
"timeout_ms": timeout_ms,
"wait_for_ms": wait_for_ms,
Expand All @@ -1589,6 +1625,7 @@ async def web_scrape_md(
self,
*,
url: str,
headers: Dict[str, str] | Omit = omit,
include_frames: bool | Omit = omit,
include_images: bool | Omit = omit,
include_links: bool | Omit = omit,
Expand All @@ -1612,6 +1649,10 @@ async def web_scrape_md(
url: Full URL to scrape into LLM usable Markdown (must include http:// or https://
protocol)

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

include_frames: When true, the contents of iframes are rendered to Markdown.

include_images: Include image references in Markdown output
Expand Down Expand Up @@ -1655,6 +1696,7 @@ async def web_scrape_md(
query=await async_maybe_transform(
{
"url": url,
"headers": headers,
"include_frames": include_frames,
"include_images": include_images,
"include_links": include_links,
Expand All @@ -1675,6 +1717,7 @@ async def web_scrape_sitemap(
self,
*,
domain: str,
headers: Dict[str, str] | Omit = omit,
max_links: int | Omit = omit,
timeout_ms: int | Omit = omit,
url_regex: str | Omit = omit,
Expand All @@ -1691,6 +1734,10 @@ async def web_scrape_sitemap(
Args:
domain: Domain to build a sitemap for

headers: Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.

max_links: Maximum number of links to return from the sitemap crawl. Defaults to 10,000.
Minimum is 1, maximum is 100,000.

Expand Down Expand Up @@ -1719,6 +1766,7 @@ async def web_scrape_sitemap(
query=await async_maybe_transform(
{
"domain": domain,
"headers": headers,
"max_links": max_links,
"timeout_ms": timeout_ms,
"url_regex": url_regex,
Expand Down
8 changes: 8 additions & 0 deletions src/context/dev/types/web_web_scrape_html_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

from typing import Dict
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo
Expand All @@ -13,6 +14,13 @@ class WebWebScrapeHTMLParams(TypedDict, total=False):
url: Required[str]
"""Full URL to scrape (must include http:// or https:// protocol)"""

headers: Dict[str, str]
"""
Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.
"""

include_frames: Annotated[bool, PropertyInfo(alias="includeFrames")]
"""When true, iframes are rendered inline into the returned HTML."""

Expand Down
8 changes: 8 additions & 0 deletions src/context/dev/types/web_web_scrape_images_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

from typing import Dict
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo
Expand All @@ -19,6 +20,13 @@ class WebWebScrapeImagesParams(TypedDict, total=False):
enrichment[resolution]=true.
"""

headers: Dict[str, str]
"""
Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.
"""

max_age_ms: Annotated[int, PropertyInfo(alias="maxAgeMs")]
"""Reuse a cached result this many milliseconds old or newer.

Expand Down
8 changes: 8 additions & 0 deletions src/context/dev/types/web_web_scrape_md_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

from typing import Dict
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo
Expand All @@ -16,6 +17,13 @@ class WebWebScrapeMdParams(TypedDict, total=False):
protocol)
"""

headers: Dict[str, str]
"""
Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.
"""

include_frames: Annotated[bool, PropertyInfo(alias="includeFrames")]
"""When true, the contents of iframes are rendered to Markdown."""

Expand Down
8 changes: 8 additions & 0 deletions src/context/dev/types/web_web_scrape_sitemap_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

from typing import Dict
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo
Expand All @@ -13,6 +14,13 @@ class WebWebScrapeSitemapParams(TypedDict, total=False):
domain: Required[str]
"""Domain to build a sitemap for"""

headers: Dict[str, str]
"""
Optional outbound HTTP headers forwarded only to the target URL, sent as
deep-object query params such as headers[X-Custom]=value. When provided, caching
is bypassed: the result is neither read from nor written to cache.
"""

max_links: Annotated[int, PropertyInfo(alias="maxLinks")]
"""Maximum number of links to return from the sitemap crawl.

Expand Down
Loading
Loading