Skip to content
Open
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.34.0"
".": "0.35.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: 26
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/profound%2Fprofound-c774f2113aa2cf14bd83dc9a2468b3181e709b2765e3b1a7da3a831560225a05.yml
openapi_spec_hash: 92f317e8c729a62dd1c9aa3569c8baf7
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/profound%2Fprofound-00cd8c5f4fab942307e15108270061006a2a343a73585f1ed44daf7b6d45739f.yml
openapi_spec_hash: 35603b4b568ed512ea38e5360d6bac3e
config_hash: e093e38f7eba5f830c65f8a5d7705c82
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 0.35.0 (2026-04-02)

Full Changelog: [v0.34.0...v0.35.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.34.0...v0.35.0)

### Features

* **api:** api update ([beea8bf](https://github.com/cooper-square-technologies/profound-python-sdk/commit/beea8bfc23a086a65512020d59f0f3a0777082af))
* **api:** api update ([0d652c6](https://github.com/cooper-square-technologies/profound-python-sdk/commit/0d652c619dacba87767ef2e5192c797cd5d9a295))
* **api:** api update ([700d990](https://github.com/cooper-square-technologies/profound-python-sdk/commit/700d990ecb17ccd8dad9d59af814d9c0af72cb09))
* **api:** api update ([6ac8258](https://github.com/cooper-square-technologies/profound-python-sdk/commit/6ac8258ca1f8221597fee647eabffeb10f0bd194))

## 0.34.0 (2026-03-30)

Full Changelog: [v0.33.1...v0.34.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.33.1...v0.34.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 = "profound"
version = "0.34.0"
version = "0.35.0"
description = "The official Python library for the profound API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/profound/_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__ = "profound"
__version__ = "0.34.0" # x-release-please-version
__version__ = "0.35.0" # x-release-please-version
54 changes: 48 additions & 6 deletions src/profound/resources/organizations/categories.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ def prompts(
cursor: Optional[str] | Omit = omit,
limit: int | Omit = omit,
order_dir: Literal["asc", "desc"] | Omit = omit,
persona_id: SequenceNotStr[str] | Omit = omit,
platform_id: SequenceNotStr[str] | Omit = omit,
prompt_type: List[Literal["visibility", "sentiment"]] | Omit = omit,
region_id: SequenceNotStr[str] | Omit = omit,
Expand All @@ -154,9 +155,28 @@ def prompts(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> CategoryPromptsResponse:
"""
Get Category Prompts
Retrieve prompts in a category with optional filtering by type, topic, tag,
region, platform, or persona. Supports cursor-based pagination.

Args:
cursor: Pagination cursor from a previous response.

limit: Maximum number of prompts to return.

order_dir: Sort direction by creation date.

persona_id: Filter by persona IDs.

platform_id: Filter by platform IDs.

prompt_type: Filter by prompt type.

region_id: Filter by region IDs.

tag_id: Filter by tag IDs.

topic_id: Filter by topic IDs.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -179,6 +199,7 @@ def prompts(
"cursor": cursor,
"limit": limit,
"order_dir": order_dir,
"persona_id": persona_id,
"platform_id": platform_id,
"prompt_type": prompt_type,
"region_id": region_id,
Expand All @@ -203,7 +224,7 @@ def tags(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> CategoryTagsResponse:
"""
Get the organization tags for a specific category.
Get the tags for a specific category.

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -236,7 +257,7 @@ def topics(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> CategoryTopicsResponse:
"""
Get the organization categories.
Get the topics for a specific category.

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -370,6 +391,7 @@ async def prompts(
cursor: Optional[str] | Omit = omit,
limit: int | Omit = omit,
order_dir: Literal["asc", "desc"] | Omit = omit,
persona_id: SequenceNotStr[str] | Omit = omit,
platform_id: SequenceNotStr[str] | Omit = omit,
prompt_type: List[Literal["visibility", "sentiment"]] | Omit = omit,
region_id: SequenceNotStr[str] | Omit = omit,
Expand All @@ -383,9 +405,28 @@ async def prompts(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> CategoryPromptsResponse:
"""
Get Category Prompts
Retrieve prompts in a category with optional filtering by type, topic, tag,
region, platform, or persona. Supports cursor-based pagination.

Args:
cursor: Pagination cursor from a previous response.

limit: Maximum number of prompts to return.

order_dir: Sort direction by creation date.

persona_id: Filter by persona IDs.

platform_id: Filter by platform IDs.

prompt_type: Filter by prompt type.

region_id: Filter by region IDs.

tag_id: Filter by tag IDs.

topic_id: Filter by topic IDs.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -408,6 +449,7 @@ async def prompts(
"cursor": cursor,
"limit": limit,
"order_dir": order_dir,
"persona_id": persona_id,
"platform_id": platform_id,
"prompt_type": prompt_type,
"region_id": region_id,
Expand All @@ -432,7 +474,7 @@ async def tags(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> CategoryTagsResponse:
"""
Get the organization tags for a specific category.
Get the tags for a specific category.

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -465,7 +507,7 @@ async def topics(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> CategoryTopicsResponse:
"""
Get the organization categories.
Get the topics for a specific category.

Args:
extra_headers: Send extra headers
Expand Down
11 changes: 11 additions & 0 deletions src/profound/types/organizations/category_prompts_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,28 @@

class CategoryPromptsParams(TypedDict, total=False):
cursor: Optional[str]
"""Pagination cursor from a previous response."""

limit: int
"""Maximum number of prompts to return."""

order_dir: Literal["asc", "desc"]
"""Sort direction by creation date."""

persona_id: SequenceNotStr[str]
"""Filter by persona IDs."""

platform_id: SequenceNotStr[str]
"""Filter by platform IDs."""

prompt_type: List[Literal["visibility", "sentiment"]]
"""Filter by prompt type."""

region_id: SequenceNotStr[str]
"""Filter by region IDs."""

tag_id: SequenceNotStr[str]
"""Filter by tag IDs."""

topic_id: SequenceNotStr[str]
"""Filter by topic IDs."""
4 changes: 4 additions & 0 deletions src/profound/types/organizations/category_prompts_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ class Data(BaseModel):

created_at: datetime

language: str

platforms: List[NamedResource]

prompt: str
Expand All @@ -25,6 +27,8 @@ class Data(BaseModel):
topic: NamedResource
"""Generic id+name reference used across domain boundaries."""

personas: Optional[List[NamedResource]] = None

tags: Optional[List[NamedResource]] = None


Expand Down
24 changes: 24 additions & 0 deletions src/profound/types/report_citations_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"ReportCitationsParams",
"Filter",
"FilterHostnameFilter",
"FilterTagNameFilter",
"FilterURLFilter",
"FilterRootDomainFilter",
"FilterCitationCategoryFilter",
Expand Down Expand Up @@ -113,6 +114,28 @@ class FilterHostnameFilter(TypedDict, total=False):
value: Required[Union[str, SequenceNotStr[str]]]


class FilterTagNameFilter(TypedDict, total=False):
"""Filter by tag name."""

field: Required[Literal["tag_name"]]

operator: Required[
Literal[
"is",
"not_is",
"in",
"not_in",
"contains",
"not_contains",
"matches",
"contains_case_insensitive",
"not_contains_case_insensitive",
]
]

value: Required[Union[str, SequenceNotStr[str]]]


class FilterURLFilter(TypedDict, total=False):
"""Filter by URL"""

Expand Down Expand Up @@ -187,6 +210,7 @@ class FilterCitationCategoryFilter(TypedDict, total=False):
TopicNameFilterParam,
ModelIDFilter,
TagIDFilter,
FilterTagNameFilter,
FilterURLFilter,
FilterRootDomainFilter,
PromptTypeFilter,
Expand Down
25 changes: 24 additions & 1 deletion src/profound/types/report_sentiment_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from .shared_params.asset_name_filter import AssetNameFilter
from .shared_params.persona_id_filter import PersonaIDFilter

__all__ = ["ReportSentimentParams", "Filter", "FilterAssetIDFilter", "FilterThemeFilter"]
__all__ = ["ReportSentimentParams", "Filter", "FilterAssetIDFilter", "FilterThemeFilter", "FilterTagNameFilter"]


class ReportSentimentParams(TypedDict, total=False):
Expand Down Expand Up @@ -110,6 +110,28 @@ class FilterThemeFilter(TypedDict, total=False):
value: Required[Union[str, SequenceNotStr[str]]]


class FilterTagNameFilter(TypedDict, total=False):
"""Filter by tag name."""

field: Required[Literal["tag_name"]]

operator: Required[
Literal[
"is",
"not_is",
"in",
"not_in",
"contains",
"not_contains",
"matches",
"contains_case_insensitive",
"not_contains_case_insensitive",
]
]

value: Required[Union[str, SequenceNotStr[str]]]


Filter: TypeAlias = Union[
FilterAssetIDFilter,
AssetNameFilter,
Expand All @@ -119,6 +141,7 @@ class FilterThemeFilter(TypedDict, total=False):
TopicNameFilterParam,
ModelIDFilter,
TagIDFilter,
FilterTagNameFilter,
PromptFilter,
PersonaIDFilter,
]
26 changes: 25 additions & 1 deletion src/profound/types/report_visibility_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from datetime import datetime
from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict

from .._types import SequenceNotStr
from .._utils import PropertyInfo
from .prompt_id_filter_param import PromptIDFilterParam
from .topic_name_filter_param import TopicNameFilterParam
Expand All @@ -18,7 +19,7 @@
from .shared_params.asset_name_filter import AssetNameFilter
from .shared_params.persona_id_filter import PersonaIDFilter

__all__ = ["ReportVisibilityParams", "Filter"]
__all__ = ["ReportVisibilityParams", "Filter", "FilterTagNameFilter"]


class ReportVisibilityParams(TypedDict, total=False):
Expand Down Expand Up @@ -80,13 +81,36 @@ class ReportVisibilityParams(TypedDict, total=False):
"""Pagination settings for the report results."""


class FilterTagNameFilter(TypedDict, total=False):
"""Filter by tag name."""

field: Required[Literal["tag_name"]]

operator: Required[
Literal[
"is",
"not_is",
"in",
"not_in",
"contains",
"not_contains",
"matches",
"contains_case_insensitive",
"not_contains_case_insensitive",
]
]

value: Required[Union[str, SequenceNotStr[str]]]


Filter: TypeAlias = Union[
RegionIDFilter,
ModelIDFilter,
TopicIDFilter,
TopicNameFilterParam,
AssetNameFilter,
TagIDFilter,
FilterTagNameFilter,
PromptIDFilterParam,
PromptFilter,
PersonaIDFilter,
Expand Down
2 changes: 2 additions & 0 deletions tests/api_resources/organizations/test_categories.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ def test_method_prompts_with_all_params(self, client: Profound) -> None:
cursor="cursor",
limit=1,
order_dir="asc",
persona_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
platform_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
prompt_type=["visibility"],
region_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
Expand Down Expand Up @@ -412,6 +413,7 @@ async def test_method_prompts_with_all_params(self, async_client: AsyncProfound)
cursor="cursor",
limit=1,
order_dir="asc",
persona_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
platform_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
prompt_type=["visibility"],
region_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
Expand Down
Loading