Discover/Neodrop API
live

Neodrop APIneodrop.ai

Retrieve detailed information about your NeoDrop AI channels, including their configuration, schedule, and ownership details. Access complete activity logs to track published content and system events across your channels.

Endpoint health
monitored
get_channel
get_channel_logs
Checks pendingself-healing
Endpoints
2
Updated
3h ago
Try it
The channel's unique identifier (alphanumeric string, e.g. '3v9iZ3CPDki'). Obtainable from channel URLs or the discover page.
api.parse.bot/scraper/18c86608-0b53-4404-8911-b5a94d0dbc16/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/18c86608-0b53-4404-8911-b5a94d0dbc16/get_channel?id=3v9iZ3CPDki' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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")
All endpoints · 2 totalmissing one? ·

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.

Input
ParamTypeDescription
idrequiredstringThe channel's unique identifier (alphanumeric string, e.g. '3v9iZ3CPDki'). Obtainable from channel URLs or the discover page.
Response
{
  "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

The Neodrop API on Parse exposes 2 endpoints for the publicly available data on neodrop.ai. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.