NeoDrop APIneodrop.ai ↗
Access NeoDrop AI channel details and activity logs via API. Retrieve configuration, ownership, content type, schedule, and paginated publication history.
What is the NeoDrop API?
The NeoDrop AI API provides 2 endpoints that expose channel configuration and activity history from neodrop.ai. The get_channel endpoint returns over 10 fields per channel including owner details, content carrier type, locale, status, and pause state. The get_channel_logs endpoint delivers a reverse-chronological, cursor-paginated log of publication events, heartbeat checks, and errors tied to each channel.
curl -X GET 'https://api.parse.bot/scraper/18c86608-0b53-4404-8911-b5a94d0dbc16/get_channel?id=3v9iZ3CPDki' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace neodrop-ai-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: NeoDrop Channel API — fetch channel info and browse activity logs."""
from parse_apis.neodrop_ai_api import NeoDrop, ChannelNotFound
client = NeoDrop()
# Fetch a channel by ID and inspect its configuration.
channel = client.channels.get(id="3v9iZ3CPDki")
print(channel.name, "|", channel.carrier, "|", channel.status)
print(f" Schedule: {channel.schedule}, Subscribers: {channel.subscribers_count}")
# Browse the channel's recent activity logs (publications, heartbeats, errors).
for log in channel.logs.list(limit=3):
print(f" [{log.status}] {log.triggered_by} — {log.summary[:80] if log.summary else 'no summary'}")
for grain in log.grains:
print(f" → {grain.title} (slug: {grain.slug})")
# Handle a non-existent channel gracefully.
try:
missing = client.channels.get(id="nonexistent_id_12345")
print(missing.name)
except ChannelNotFound as exc:
print(f"Channel not found: {exc.id}")
print("Exercised: channels.get / channel.logs.list / ChannelNotFound error handling")
Retrieve detailed information about a NeoDrop channel by its ID. Returns channel configuration, schedule, owner, subscriber/post counts, and content requirements. The channel must be public or the response will indicate it requires subscription.
| Param | Type | Description |
|---|---|---|
| idrequired | string | The channel's unique identifier (alphanumeric string, e.g. '3v9iZ3CPDki'). Obtainable from channel URLs or the discover page. |
{
"type": "object",
"fields": {
"id": "string",
"name": "string",
"type": "string",
"owner": "object with id, name, image",
"avatar": "string — relative media path or null",
"banner": "string — relative media path or null",
"locale": "string",
"paused": "boolean",
"status": "string",
"carrier": "string — content type (Article, Video, ImagePost, Podcast, Music)",
"metadata": "object — content carrier and agent variant info",
"schedule": "string — cron expression",
"run_count": "integer",
"created_at": "string — ISO 8601 datetime",
"updated_at": "string — ISO 8601 datetime",
"description": "string",
"error_count": "integer",
"next_run_at": "string — ISO 8601 datetime or null",
"posts_count": "integer",
"time_zone_offset": "integer",
"last_published_at": "string — ISO 8601 datetime or null",
"subscribers_count": "integer",
"public_requirement": "object — channel content configuration"
},
"sample": {
"id": "3v9iZ3CPDki",
"name": "Netflix / HBO / Apple TV+ New Releases",
"type": "PUBLIC",
"owner": {
"id": "ixEDygqKZpW",
"name": "NeoDrop Official",
"image": "https://storage.neodrop.ai/user-avatars/ixEDygqKZpW/20260519/bd22ac00-628d-4422-b851-3596b4d5eada.png"
},
"avatar": "grains/media/WCCmAQjjkvbPVKovy2F3J.png",
"banner": "grains/media/p4XT47KzSMGUMjMc3xt_L.png",
"locale": "en",
"paused": false,
"status": "ACTIVE",
"carrier": "Article",
"metadata": {
"contentCarrier": "Article",
"agentChainVariant": "full"
},
"schedule": "0 18 * * 4",
"run_count": 6,
"created_at": "2026-05-17T14:03:54.135Z",
"updated_at": "2026-06-29T00:56:34.571Z",
"description": "Weekly streaming new releases across Netflix, HBO Max, Apple TV+, Hulu, with Rotten Tomatoes scores and watch-worthy verdict",
"error_count": 1,
"next_run_at": "2026-07-02T23:00:00.000Z",
"posts_count": 7,
"time_zone_offset": -5,
"last_published_at": "2026-06-25T23:20:18.590Z",
"subscribers_count": 19,
"public_requirement": {
"notes": "Tracking targets...",
"schedule": {
"weekDay": 4,
"timezone": "-05:00",
"frequency": "weekly",
"publishTime": "18:00"
},
"contentUnit": "One weekly streaming guide article",
"contentNeeds": "Weekly new releases..."
}
}
}About the NeoDrop API
Channel Details
The get_channel endpoint accepts a single required id parameter — the alphanumeric channel identifier found in neodrop.ai channel URLs. It returns the channel's name, type, status, locale, and paused state, along with avatar and banner media paths. The carrier field indicates what kind of content the channel produces: one of Article, Video, ImagePost, Podcast, or Music. The owner object nests the publisher's id, name, and image. Channels that require a subscription will surface that constraint in the response rather than returning full data.
Activity Logs
The get_channel_logs endpoint takes a required channel_id and two optional parameters: limit to cap the number of entries returned per page, and cursor for pagination. Log entries in the items array include status codes, trigger types, human-readable summaries, and references to published content objects called grains. Results are ordered newest-first. When more pages exist, the response includes a next_cursor string; a null next_cursor signals the end of the log.
Data Coverage
Both endpoints are scoped to individual channels — you need a channel ID to retrieve data. The channel response covers configuration and ownership but does not include the content of individual posts or grains directly; that detail lives in the logs. The activity log is the primary way to reconstruct a channel's publication timeline and identify errors or skipped runs.
The NeoDrop API is a managed, monitored endpoint for neodrop.ai — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when neodrop.ai changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official neodrop.ai API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor whether a NeoDrop AI channel is paused or active by checking the
pausedandstatusfields - Audit a channel's content type category using the
carrierfield to confirm it produces Articles, Videos, or Podcasts - Build a publication history dashboard by paginating through
get_channel_logswithlimitandcursor - Track ownership of channels by extracting the
ownerobject withid,name, andimage - Detect channel errors and failed publication runs by inspecting log entry status codes in
get_channel_logs - Retrieve locale information from
get_channelto filter channels by language or regional configuration
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does NeoDrop AI have an official developer API?+
What does get_channel_logs return, and how does pagination work?+
items array of log entries in reverse chronological order. Each entry includes a status, trigger type, summary, and grain references for published content. Pass the next_cursor value from one response as the cursor parameter in the next request to advance pages. A null next_cursor means no further pages exist.Can I retrieve the full content of posts or grains through this API?+
get_channel and activity log entries via get_channel_logs, which reference grains but do not return their full content. You can fork this API on Parse and revise it to add an endpoint that retrieves individual grain content.Does the API expose channel subscriber counts or post counts?+
get_channel endpoint is documented to return subscriber and post counts as part of the channel configuration. Private or subscription-required channels may return limited data rather than full configuration fields.Can I search or list all channels rather than fetching one by ID?+
channel_id or id as input — there is no search or list endpoint in this API. You can fork it on Parse and revise it to add a channel discovery or search endpoint.