Authentication
Authenticate requests with your API key using the following HTTP header.
Authorization: Bearer <YOUR_KEY>API access requires a paid workspace. Calls are billed by usage.
POST/api/openapi/v1/videos/detailVideo details
API pricing0.1 credits / successful request
Supported platformsInstagram / YouTube / TikTok
Quick start (cURL)
curl -X POST 'https://app.hicreator.ai/api/openapi/v1/videos/detail' \
-H 'Authorization: Bearer <YOUR_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"video_url": "https://www.instagram.com/reel/EXAMPLE123/"
}'Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| video_url | string | Yes | Video link. |
Response fields
| Parameter | Type | Always returned | Description |
|---|---|---|---|
| requestId | string | Yes | Request ID for support. |
| billingRequestId | string | Yes | Billing record ID. |
| data | object | Yes | Query result. |
| data.platform | 'instagram' | Yes | Platform. |
| data.canonicalUrl | string (URL) | Yes | Profile or content link. |
| data.retrievedAt | string (ISO 8601) | Yes | Retrieved at. |
| data.video | object | Yes | Video details. |
| data.video.id | string | Yes | Platform content ID. |
| data.video.contentType | 'post' | 'reel' | 'video' | Yes | Content type. |
| data.video.title | string | No | Video title. |
| data.video.description | string | No | Video description or post text. |
| data.video.thumbnailUrl | string (URL) | No | Cover image link. |
| data.video.author | object | No | Author profile. |
| data.video.author.id | string | No | Platform creator ID. |
| data.video.author.username | string | No | Handle. |
| data.video.author.displayName | string | No | Display name. |
| data.video.author.avatarUrl | string (URL) | No | Author avatar link. |
| data.video.author.profileUrl | string (URL) | No | Author profile link. |
| data.video.durationSeconds | number | No | Duration in seconds. |
| data.video.publishedAt | string (ISO 8601) | No | Published at. |
| data.video.metrics | object | Yes | Engagement metrics. |
| data.video.metrics.viewCount | integer | No | Plays or views. |
| data.video.metrics.likeCount | integer | No | Likes. |
| data.video.metrics.commentCount | integer | No | Comments. |
| data.video.metrics.shareCount | integer | No | Shares. |
| data.video.platformDetails | object | Yes | Platform-specific details. |
Example response (JSON)
{
"requestId": "<request-id>",
"billingRequestId": "<billing-request-id>",
"data": {
"platform": "instagram",
"canonicalUrl": "https://www.instagram.com/reel/EXAMPLE123/",
"retrievedAt": "2026-09-28T01:02:03.000Z",
"video": {
"id": "EXAMPLE123",
"contentType": "reel",
"description": "A day in Tokyo",
"thumbnailUrl": "https://example.com/cover.jpg",
"author": {
"id": "<creator-id>",
"username": "example_creator",
"displayName": "Example Creator",
"profileUrl": "https://www.instagram.com/example_creator/"
},
"durationSeconds": 30,
"publishedAt": "2026-09-01T12:00:00.000Z",
"metrics": {
"viewCount": 12000,
"likeCount": 500,
"commentCount": 30,
"shareCount": 12
},
"platformDetails": {}
}
}
}Errors and retries
See error.message; keep requestId for support. Do not retry uncertain requests.
View error codes
Request: 400 invalid parameters (10001) or quantity below the minimum (70004); 401 invalid key (20001); 403 API access is only available to paid Workspaces (60006); 413 payload too large (10005); 415 unsupported format (10006); 429 too many requests (10007).
Execution: 404 Twitter creator unavailable (60008); 422 invalid search intent (60001) or target account (60002); 422 email lookup incomplete (60009): search limits reached, fully refunded; this does not mean no email exists and must not be automatically retried; 502 email lookup failed (60003) or execution failed (60004); 504 request timed out (60005). Gateway error pages are returned as JSON with code API_UPSTREAM_ERROR; do not automatically retry paid requests.
Credits: 402 insufficient balance (70001) or daily limit exceeded (70006); 409 feature unavailable (70002) or credit record conflict (70003). API errors include error.code, error.message, and error.requestId. Business errors include error.billingRequestId after charging starts; gateway fallbacks may lack it and cannot confirm refund status.