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)
| File | Size | Uploaded | |
|---|---|---|---|
| aicontentdrop-0.1.0.tar.gz | 7.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|