Getting Started
BlueDino's API lets you post to Pinterest, TikTok, and YouTube programmatically. Authenticate with an API key, connect your accounts, and start posting.
1. Get an API key
Go to the Developer Dashboard and create an API key.
2. Connect your accounts
Connect Pinterest, TikTok, and/or YouTube from the dashboard.
3. Start posting
Use the endpoints below with your API key in the Authorization header.
Authentication
Include your API key in every request:
Authorization: Bearer bdsk_your_api_key_here/api/v1/pinterest/boardsList all boards on the connected Pinterest account.
Example
curl https://yourdomain.com/api/v1/pinterest/boards \
-H "Authorization: Bearer bdsk_your_key"Response
{
"boards": [
{ "id": "123456789", "name": "My Board", "privacy": "PUBLIC" }
]
}/api/v1/pinterest/pinsCreate and publish a pin to a board.
Body
{
"board_id": "123456789", // required
"title": "My Pin Title", // optional, max 100 chars
"description": "Pin caption", // optional, max 500 chars
"link": "https://example.com", // optional
"image_url": "https://...", // provide image_url OR image_base64
"image_base64": "data:image/png;base64,..." // alternative to image_url
}Example
curl -X POST https://yourdomain.com/api/v1/pinterest/pins \
-H "Authorization: Bearer bdsk_your_key" \
-H "Content-Type: application/json" \
-d '{
"board_id": "123456789",
"title": "Summer Recipes",
"description": "Fresh salad ideas for warm days",
"image_url": "https://example.com/image.jpg"
}'Response
{
"success": true,
"pin_id": "987654321"
}/api/v1/pinterest/scheduleSchedule a pin for future publishing.
Body
{
"board_id": "123456789", // required
"title": "My Pin Title", // optional, max 100 chars
"description": "Pin caption", // optional, max 500 chars
"link": "https://example.com", // optional
"image_url": "https://...", // provide image_url OR image_base64
"image_base64": "data:image/png;base64,...",
"scheduled_at": "2026-05-20T14:00:00Z" // required, ISO 8601, must be future
}Example
curl -X POST https://yourdomain.com/api/v1/pinterest/schedule \
-H "Authorization: Bearer bdsk_your_key" \
-H "Content-Type: application/json" \
-d '{
"board_id": "123456789",
"title": "Summer Recipe Ideas",
"description": "Fresh salad recipes for warm days",
"image_url": "https://example.com/image.jpg",
"scheduled_at": "2026-05-20T14:00:00Z"
}'Response
{
"success": true,
"scheduled": {
"id": "sched_123...",
"status": "pending",
"scheduled_at": "2026-05-20T14:00:00.000Z"
}
}/api/v1/pinterest/scheduleList all scheduled pins.
Example
curl https://yourdomain.com/api/v1/pinterest/schedule \
-H "Authorization: Bearer bdsk_your_key"/api/v1/pinterest/scheduleCancel a scheduled pin.
Body
{ "id": "sched_123..." }/api/v1/pinterest/trendsGet trending keywords on Pinterest. Returns up to 50 results for today's date.
Query Parameters
region — Country code (default: "US")
trend_type — "growing" | "monthly" | "weekly" | "daily" (default: "growing")
limit — Number of results, max 50 (default: 10)
interests — Filter by interest category (optional)
genders — Filter by gender (optional)
ages — Filter by age group (optional)
normalize_against_group — Compare relative volume between keywords (optional)Example
curl "https://yourdomain.com/api/v1/pinterest/trends?region=US&trend_type=growing&limit=5" \
-H "Authorization: Bearer bdsk_your_key"Response
{
"trends": [
{
"keyword": "summer nails",
"pct_growth_wow": 30,
"pct_growth_mom": 100,
"pct_growth_yoy": 10,
"time_series": {
"2026-05-12": 87,
"2026-05-19": 100
}
}
]
}/api/v1/pinterest/analyticsGet Pinterest account analytics for a date range.
Query Parameters
start_date — YYYY-MM-DD (default: 30 days ago)
end_date — YYYY-MM-DD (default: today)Example
curl "https://yourdomain.com/api/v1/pinterest/analytics?start_date=2026-04-19&end_date=2026-05-19" \
-H "Authorization: Bearer bdsk_your_key"Response
{
"totals": {
"IMPRESSION": 12450,
"PIN_CLICK": 382,
"SAVE": 91,
"OUTBOUND_CLICK": 44,
"ENGAGEMENT": 617
},
"daily": {
"2026-05-18": {
"IMPRESSION": 420,
"PIN_CLICK": 12,
"SAVE": 3,
"OUTBOUND_CLICK": 1,
"ENGAGEMENT": 19
}
},
"start_date": "2026-04-19",
"end_date": "2026-05-19"
}TikTok
/api/v1/tiktok/postPost a photo carousel to TikTok.
Body
{
"caption": "Check this out!", // required
"images": ["data:image/png;base64,..."], // required, 1-5 base64 images
"privacy_level": "PUBLIC_TO_EVERYONE" // optional, default SELF_ONLY
}Privacy options
PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY
YouTube
/api/v1/youtube/postUpload a video to YouTube.
Body
{
"video_url": "https://...", // required, URL to video file
"title": "My Video", // required
"description": "Video description", // optional
"tags": ["tag1", "tag2"], // optional
"privacy_status": "private" // optional: public, unlisted, private
}/api/v1/youtube/analyticsGet YouTube channel analytics for a date range.
Query Parameters
start_date — YYYY-MM-DD (default: 28 days ago)
end_date — YYYY-MM-DD (default: today)Example
curl "https://yourdomain.com/api/v1/youtube/analytics?start_date=2026-04-21&end_date=2026-05-19" \
-H "Authorization: Bearer bdsk_your_key"Response
{
"totals": {
"views": 8421,
"estimated_minutes_watched": 16930,
"average_view_duration": 118.42,
"likes": 264,
"subscribers_gained": 38
},
"daily": [
{
"date": "2026-05-18",
"views": 311,
"estimated_minutes_watched": 602,
"average_view_duration": 116,
"likes": 9,
"subscribers_gained": 2
}
],
"start_date": "2026-04-21",
"end_date": "2026-05-19"
}Errors
| Status | Meaning |
|---|---|
| 401 | Invalid or missing API key |
| 400 | Bad request (missing required fields) |
| 403 | Platform not connected |
| 500 | Server error |