Skip to main content

aicontentdrop — Python SDK

Official Python client for the AI Content Drop API. Generate AI video and images across 35+ models on one credit balance.

pip install aicontentdrop

No runtime dependencies — everything is standard library, so it installs anywhere Python 3.9+ runs and cannot conflict with your pinned HTTP client.

Start without an account

The catalogue, cost estimates, the natural-language endpoint and the sandbox need no credential, so you can finish an integration before anyone signs up.

from aicontentdrop import AiContentDrop

acd = AiContentDrop()                       # no key

for model in acd.models(type="video", max_credits=12):
    print(model["id"], model["credits"])

print(acd.cost("kling_3_0", quantity=3))    # quote before you spend

Rehearse a generation for free, with full validation and no API key:

rehearsal = AiContentDrop(sandbox=True)
job = rehearsal.generate_video(prompt="a red balloon over a city", model="kling_3_0")
print(job["status"], job["creditsUsed"])    # completed 0

Generate

Create a key at https://aicontentdrop.com/settings/integrations, then put it in ACD_API_KEY (or pass api_key=).

acd = AiContentDrop()                       # reads ACD_API_KEY

video = acd.generate_video_and_wait(
    prompt="a golden retriever surfing at sunset",
    model="kling_3_0",
    on_progress=lambda v: print(v["status"]),
)
print(video["video_url"])

generate_video_and_wait raises on any terminal state other than completed, so a failed job can never be mistaken for a finished one.

For manual control, generate_video() returns immediately and video(id) polls:

job = acd.generate_video(prompt="…", model="kling_3_0")
while job["status"] == "generating":
    time.sleep(5)
    job = acd.video(job["id"])

Handling failures

from aicontentdrop import AcdError

try:
    acd.generate_video(prompt="…", model="kling_3_0")
except AcdError as exc:
    if exc.code == "insufficient_credits":
        print("Balance too low:", acd.me()["credits"])
    elif exc.is_retryable:
        time.sleep(exc.retry_after or 30)
    else:
        raise

Branch on exc.code, never on the message. Credits are charged only on success, so a failure costs nothing and there is no refund to request.

Batching

Quote a whole job in one call, and move loops of reads into one request:

quote = acd.cost_batch([
    {"model_id": "kling_3_0",  "quantity": 8},
    {"model_id": "veo_3_fast", "quantity": 2},
])
print(quote["credits_total"])

results = acd.batch([
    {"id": "video", "method": "GET", "path": "/v1/models?type=video"},
    {"id": "image", "method": "GET", "path": "/v1/models?type=image"},
])

Give each item in a batch its own stable idempotency_key derived from the item rather than the attempt — that is what makes a run resumable after a crash instead of paying twice.

Reference

Docs https://aicontentdrop.com/developers
OpenAPI 3.1 https://aicontentdrop.com/openapi.json
Pricing, as markdown https://aicontentdrop.com/pricing.md
Errors and retries https://aicontentdrop.com/docs/errors
Rate limits https://aicontentdrop.com/docs/rate-limits
Agent skills https://aicontentdrop.com/skills/index.json
Source https://github.com/aicontentdrop/aicontentdrop

Tests

No test dependencies either — standard-library unittest:

python -m unittest discover -s tests -t .

MIT licensed.

Metadata

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

Built distribution (wheel)

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

Total release size: 16.2 kB

Release files / aicontentdrop-0.1.0.tar.gz

Download URL aicontentdrop-0.1.0.tar.gz
Size 7.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7f9414b2d6bb48a1b837e9ff3a97c0fb58a56ad6ffa8fe420ca25f60640f6300
BLAKE2b-256 checksum
How to use checksums
41fc684e8cd26591d227592d12ed124a30971347bbffb3a254d3efe239ae0f1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

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

Download URL aicontentdrop-0.1.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b3f7e4341747464f05973895f9f2f5d8b603c71c441f0b97502d13d379b8838
BLAKE2b-256 checksum
How to use checksums
aa6945e6c9a44e6e788d5f6e4657ea04da02a84a0e3e6bf7bd5e1238c814c7d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

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