Skip to main content

studio99-python

PyPI

Official Python client for the Studio99 Indic Typography API: exact Hindi, Marathi, Gujarati and English text as editable SVG and PNG, from real calligraphy fonts.

  • Standard library only (no dependencies), Python 3.9+
  • Server-side use: keep your API key on your server

Install

pip install studio99

Get an API key at https://accounts.studio99.app/dashboard/products/studio99-api (Free plan: 100 credits a month, watermarked previews).

Quick start

from studio99 import Studio99

s99 = Studio99()  # reads STUDIO99_API_KEY

res = s99.generate(
    "shubh vivah",          # Latin letters are transliterated; Devanagari/Gujarati work as-is
    language="hindi",
    use_case="wedding",
    count=4,                # 1 credit per variant
)

for i, variant in enumerate(res.data["generatedResults"], 1):
    if variant.get("svg"):
        with open(f"variant-{i}.svg", "w", encoding="utf-8") as f:
            f.write(variant["svg"]["svgString"])   # complete, editable SVG

print("Credits left:", res.usage["remaining"])

Methods

Method Endpoint Cost
generate(text, **options) POST /generate 1 credit per variant
render(text, font_id, font_size=, format=, png_width=) POST /render 1 credit
fonts(language=, mood=, use_case=, limit=) GET /fonts free
library.search(q, category=, language=, page=, limit=) GET /library/search free
library.get(id) GET /library/{id} free
library.download(id, format="PNG") GET /library/{id}/download 1 credit
library.render_svg(id) GET /library/{id}/render-svg 1 credit
capabilities(), health() meta free

Every method returns a Response with .data, .usage and .rate_limit. generate options use the API's own field names (language, count, format, pngWidth, fontId, use_case, mood, align, lines, seed, ...); see the OpenAPI spec.

Exact rendering in one font

fonts = s99.fonts(language="marathi", mood="festive", limit=5).data["fonts"]
out = s99.render("दिवाळीच्या शुभेच्छा", fonts[0]["id"], format="svg").data
print(out["svgString"])

Free plan

Free-plan calls return a small watermarked JPG in preview (no commercial licence) instead of svg/png.

Errors and retries

Failed calls raise Studio99Error with .code (API error code such as INSUFFICIENT_CREDITS, TEXT_TOO_LONG, FONT_NOT_FOUND), .status and .rate_limit.

RATE_LIMIT_EXCEEDED is retried after the reset time (rate-limited calls are not charged). GET requests are also retried on network errors and 502-504. generate and render calls that may have reached the engine are never retried automatically, so you are never charged twice. Tune with Studio99(max_retries=..., timeout=...).

Keep your key safe

Keep it in an environment variable on your server; never commit it or put it in a browser or mobile app. repr(client) never prints the key. A revoked key stops working within a minute.

Docs · Pricing · Changelog · Status · API terms · Examples

Licence

This client: MIT. The API, its fonts and the artwork it returns are governed by the API terms; the fonts are proprietary and never leave our servers.

Built by ArtoMania Studio, Pune · reach@studio99.app

Metadata

Release files for studio99 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 studio99 0.1.0
File Size Uploaded
studio99-0.1.0.tar.gz 8.1 kB Details

Built distribution (wheel)

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

Total release size: 15.5 kB

Release files / studio99-0.1.0.tar.gz

Download URL studio99-0.1.0.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1fd533062b711eae5757f91a63b53462f11d77d9fdb314646af261c0f64e40bd
BLAKE2b-256 checksum
How to use checksums
657f1bc01cea2b34a3674b7d68188852d2755fc992275b334c8a3392071bb55e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

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

Download URL studio99-0.1.0-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99dec11085d8d4050d0fd9922e0103eecfe22f6a7c046ac4a3f2a67d338ef5c1
BLAKE2b-256 checksum
How to use checksums
ca16e8fc3ce13995dd174419c14d829a78427f7a52f5bee9c5bab6219b8776d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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