LLM Docs

Shorts V2 Public API

Base URL: https://shortsblink.com

Authenticate every API request with the X-API-Key header.

Auth

X-API-Key: sk_v2_...

Important Behavior

Workflow

  1. Create an API key in the dashboard.
  2. List or create a channel record.
  3. Create a schedule with JSON asset URLs or uploaded files.
  4. Optionally publish the schedule immediately.
  5. For TikTok inbox uploads, poll the status endpoint until TikTok finishes processing.
  6. List published posts.

Endpoints

{
  "channels_list": {
    "method": "GET",
    "path": "/api/v2/channels"
  },
  "channels_create": {
    "method": "POST",
    "path": "/api/v2/channels",
    "json": {
      "platform": "tiktok",
      "name": "Brand TikTok",
      "handle": "@brand"
    }
  },
  "channel_delete": {
    "method": "DELETE",
    "path": "/api/v2/channels/CHANNEL_ID"
  },
  "schedules_list": {
    "method": "GET",
    "path": "/api/v2/schedules"
  },
  "schedules_create_json": {
    "method": "POST",
    "path": "/api/v2/schedules",
    "json": {
      "channel_id": "1",
      "title": "Morning launch",
      "caption": "Queued by API",
      "content_type": "video",
      "delivery_mode": "inbox",
      "asset_urls": [
        "https://cdn.example.com/video.mp4"
      ],
      "scheduled_for": "2026-04-11T10:00:00Z"
    }
  },
  "schedules_publish_now": {
    "method": "POST",
    "path": "/api/v2/schedules/SCHEDULE_ID/publish"
  },
  "schedules_refresh_status": {
    "method": "GET",
    "path": "/api/v2/schedules/SCHEDULE_ID/status"
  },
  "posts_list": {
    "method": "GET",
    "path": "/api/v2/posts"
  }
}

Supported Values

platform: youtube | tiktok content_type: video | slideshow delivery_mode: direct | inbox

Create A Channel

curl -X POST "https://shortsblink.com/api/v2/channels" \
  -H "X-API-Key: sk_v2_..." \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "tiktok",
    "name": "Brand TikTok",
    "handle": "@brand"
  }'

Create A Schedule With JSON

curl -X POST "https://shortsblink.com/api/v2/schedules" \
  -H "X-API-Key: sk_v2_..." \
  -H "Content-Type: application/json" \
  -d '{
    "channel_id": "1",
    "title": "Launch teaser",
    "caption": "First look at the new drop.",
    "content_type": "video",
    "delivery_mode": "inbox",
    "asset_urls": ["https://cdn.example.com/videos/launch.mp4"],
    "scheduled_for": "2026-04-11T10:00:00Z"
  }'

Create A Schedule With Uploaded Files

curl -X POST "https://shortsblink.com/api/v2/schedules" \
  -H "X-API-Key: sk_v2_..." \
  -F "channel_id=1" \
  -F "title=AI History in 3 Photos" \
  -F "caption=Upload photos directly" \
  -F "content_type=slideshow" \
  -F "delivery_mode=inbox" \
  -F "scheduled_for=2026-04-11T15:00:00Z" \
  -F "assets=@slide1.jpg" \
  -F "assets=@slide2.jpg"

Publish A Schedule Immediately

curl -X POST "https://shortsblink.com/api/v2/schedules/SCHEDULE_ID/publish" \
  -H "X-API-Key: sk_v2_..."

Refresh TikTok Schedule Status

curl "https://shortsblink.com/api/v2/schedules/SCHEDULE_ID/status" \
  -H "X-API-Key: sk_v2_..."

Typical Responses

{
  "schedule_created": {
    "schedule": {
      "id": "12",
      "channel_id": "1",
      "platform": "tiktok",
      "title": "Launch teaser",
      "status": "scheduled",
      "credits_remaining": 49
    }
  },
  "publish_success": {
    "status": "posted",
    "result": {
      "status": "posted"
    }
  },
  "tiktok_status_refresh": {
    "status": "uploaded",
    "schedule": {
      "status": "uploaded",
      "publish_result": {
        "publish_status": {
          "data": {
            "status": "PROCESSING_DOWNLOAD"
          }
        }
      }
    }
  }
}

Typical Errors

{
  "400": {
    "error": "channel_id is invalid"
  },
  "402": {
    "error": "Insufficient credits. Please purchase credits to create a schedule."
  },
  "404": {
    "error": "schedule not found"
  }
}

For the canonical schema, see OpenAPI YAML or Swagger UI. The TikTok status refresh endpoint is listed there too.