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
52 changes: 52 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Bug report
description: Report broken behavior, install failures, regressions, or incorrect Python behavior.
title: "[Bug]: "
labels:
- bug
- needs-triage
body:
- type: markdown
attributes:
value: |
Thanks for reporting a bug in the Python SDK.

Please do not report security vulnerabilities in public issues.
- type: input
id: package-version
attributes:
label: SDK package and version
description: Include the package name and version from your package manager.
placeholder: "polymarket-client==0.1.0b1"
validations:
required: true
- type: input
id: runtime
attributes:
label: Runtime
description: Include your Python version, environment manager, and package manager.
placeholder: "Python 3.12.8, uv 0.7.0"
validations:
required: true
- type: textarea
id: summary
attributes:
label: What happened?
description: Describe the broken behavior or regression.
placeholder: "The SDK throws when..."
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Minimal reproduction
description: Provide the smallest code sample or steps that reproduce the issue.
render: python
validations:
required: true
- type: textarea
id: expected-actual
attributes:
label: Expected behavior, actual behavior, or logs
description: Add expected behavior, actual behavior, errors, or logs if helpful.
validations:
required: false
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Feature request
description: Request a new SDK capability, API improvement, or developer experience enhancement.
title: "[Feature]: "
labels:
- enhancement
- needs-triage
body:
- type: markdown
attributes:
value: |
Thanks for helping improve the Python SDK.

Please focus this request on the SDK behavior or API surface you want to use.
- type: textarea
id: request
attributes:
label: What would you like the SDK to support?
description: Describe the new capability, API change, or developer experience improvement.
validations:
required: true
- type: textarea
id: use-case
attributes:
label: Why do you need this?
description: Describe the use case or current limitation.
validations:
required: true
- type: textarea
id: example
attributes:
label: Example API or additional context
description: Optional code sample, workaround, or related context.
render: python
validations:
required: false
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/general_feedback_question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: General feedback or question
description: Ask a usage question or share feedback that is not clearly a bug or feature request.
title: "[Feedback]: "
labels:
- feedback
- needs-triage
body:
- type: markdown
attributes:
value: |
Use this form for Python SDK questions, launch feedback, and reports that are not yet actionable as a bug or feature request.

Please do not report security vulnerabilities in public issues.
- type: textarea
id: question-feedback
attributes:
label: Question or feedback
description: Describe what you are trying to understand, share, or clarify.
validations:
required: true
- type: input
id: package-version
attributes:
label: SDK package and version
description: Include this if your question depends on a specific package version.
placeholder: "polymarket-client==0.1.0b1"
validations:
required: false
- type: textarea
id: context
attributes:
label: Additional context
description: Add a code sample, runtime details, link, or context if helpful.
render: python
validations:
required: false
File renamed without changes.
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Contributing

The Python SDK is currently in beta.

During beta, we are using GitHub Issues as the primary public feedback channel. Please open an issue for bug reports, feature requests, or general feedback.

We are not broadly accepting external pull requests yet. Large changes should not be started without prior discussion and agreement with the Polymarket team.

Once the SDK is stable and out of beta, we will expand these guidelines and start opening the project to external contributions.

## Development Setup

```bash
Expand Down
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,24 @@

Official Python SDK for Polymarket.

The SDK gives Python developers one coherent, workflow-oriented interface for building on Polymarket, starting with public data access and expanding toward authenticated account, trading, builder attribution, and relayer-backed workflows.
The SDK gives Python developers one coherent, workflow-oriented interface for building on Polymarket across public data, authenticated account, trading, builder attribution, and wallet workflows.

## Beta Status

The Python SDK is currently in beta. We are working toward a stable public API and will use feedback during the beta period to refine the developer experience.

We welcome bug reports, feature requests, and general feedback through GitHub Issues. Please use the provided issue templates so we can triage reports consistently.

## Installation

```bash
uv add polymarket-client
uv add --prerelease allow polymarket-client
```

or:

```bash
pip install polymarket-client
pip install --pre polymarket-client
```

## Usage
Expand Down
22 changes: 22 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Security Policy

## Reporting a Vulnerability

Please do not report security vulnerabilities through public GitHub issues.

Use GitHub private vulnerability reporting for this repository. Include enough detail for us to understand and reproduce the issue, including:

- The affected package and version.
- A description of the vulnerability and potential impact.
- Reproduction steps or a proof of concept, if available.
- Any relevant environment details.

We will review reports and coordinate fixes before public disclosure.

## Supported Versions

The Python SDK is currently in beta. Security fixes are focused on the latest published beta version and the current development branch.

## Public Issues

For non-security bugs, feature requests, and general feedback, use the repository's GitHub issue templates.
2 changes: 1 addition & 1 deletion docs/sdk-direction.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ We evaluated common Python SDKs in trading, exchange, and Web3 ecosystems. The m

The sync and async clients should share request builders, models, auth/signing, serialization, validation, response parsing, and namespace structure. Their implementations should differ at the transport boundary: sync clients use sync transports, async clients use async transports.

Write-heavy CLOB workflows may land on async clients first while we validate the Python interface for order placement, cancellation, signing, and related account operations. This is intentional planned tech debt, not a change to the default-client direction. Once the async shape is stable, follow-up work should extend the same workflows to the synchronous `PublicClient` and `SecureClient` without wrapping async implementations in `asyncio.run()`.
Supported workflows should be available on both sync and async clients where practical. Sync implementations should use sync transports rather than wrapping async implementations in `asyncio.run()`.

Clients that own network transports should support explicit cleanup. Synchronous clients should be usable as context managers:

Expand Down
Loading