Skip to main content

mymarky

Typed Python client for the Marky REST API. Python 3.11+.

pip install mymarky
from mymarky import Marky, NotFoundError
from mymarky.generated.api.businesses import list_workspaces
from mymarky.generated.api.library import upload_media_from_url
from mymarky.generated.api.posts import create_post
from mymarky.generated.models import MediaUploadFromUrlRequest, PostCreateRequest

with Marky(api_key="mk_live_...") as marky:
    workspace = next(marky.paginate(list_workspaces.sync))
    media = upload_media_from_url.sync(
        client=marky.client,
        body=MediaUploadFromUrlRequest(workspace_id=workspace.id, url="https://example.com/photo.jpg"),
    )
    post = create_post.sync(
        workspace.id,
        client=marky.client,
        body=PostCreateRequest(caption="We're open late this Friday!", media_ids=[media.id]),
    )

Every operation lives in mymarky.generated.api.<tag>.<operation> with sync, sync_detailed, asyncio and asyncio_detailed variants; pass client=marky.client.

Workspace operations (list_workspaces, get_workspace, create_workspace, update_workspace, delete_workspace) live in the businesses tag module. Routes inside a workspace keep their /api/businesses/{business_id}/... path, so their first argument is named business_id: pass the workspace ID.

  • Errors: any non-2xx raises an ApiError subclass (NotFoundError, RateLimitError, ...). Branch on err.code, never on the message.
  • Retries: 429s, and 5xx/network errors on requests that are safe to repeat. Create calls get an Idempotency-Key automatically, so a retry never makes a duplicate. Pass idempotency_key= to make your own retries safe too.
  • Unknown values: enums are plain strings, so a new status or platform never breaks parsing; unknown fields land in .additional_properties.
  • Renamed "business" to "workspace": list_businesses, get_business, create_business, update_business, delete_business and the business_id field on media upload bodies still work but are deprecated; use the *_workspace(s) functions and workspace_id.
  • Webhooks: construct_event(raw_body, request.headers, secret) checks the X-Marky-Signature HMAC over "{X-Marky-Timestamp}." + raw body, rejects deliveries older than 5 minutes (replays), and returns the event.

Metadata

Release files for mymarky 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mymarky 0.1.0
File Size Uploaded Provenance Actions
mymarky-0.1.0.tar.gz 507.5 kB With provenance Details for mymarky-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mymarky 0.1.0
File Interpreter ABI Platform Actions
mymarky-0.1.0-py3-none-any.whl Python 3 none any Details for mymarky-0.1.0-py3-none-any.whl

Total release size: 1.9 MB

Release files / mymarky-0.1.0.tar.gz

Download URL mymarky-0.1.0.tar.gz
Size 507.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bc16aaf58f552d87627c341eec766deba766f379c2df2cfd74944803849b2400
BLAKE2b-256 checksum
How to use checksums
92c3b4acbcc6cfec589999703603ef25a497e99c7f4f647f8efcea91046e5ba8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / mymarky-0.1.0-py3-none-any.whl

Download URL mymarky-0.1.0-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8dd95e930d3cf243e40a836bcfe6ca47805a60cec07927e2024cb95df05f67a4
BLAKE2b-256 checksum
How to use checksums
b38d10ce53583ede5e9e493525bf1812aafebc8e58f52406ca320d7635793cbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Security for mymarky 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mymarky-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page