> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hooked.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Schedule Details

> Get detailed information about a specific scheduled post

<Note>
  **Try it out!** Use the API playground on the right to test the Get Schedule Details endpoint directly.
</Note>

## Overview

Get complete details about a specific scheduled post, including video information, platform data, and publishing status.

This endpoint is useful for:

* Checking the status of a scheduled post
* Retrieving platform-specific metadata
* Getting the video URL and thumbnail for preview

***

## Endpoint

```
GET /v1/schedule/{scheduleId}
```

***

## Path Parameters

<ParamField path="scheduleId" type="string" required>
  The unique ID of the scheduled post to retrieve
</ParamField>

***

## Headers

<ParamField header="x-api-key" type="string" required>
  Your API key from [API Settings](https://hooked.so/settings/api)
</ParamField>

***

## Response

<ResponseField name="success" type="boolean">
  Whether the request was successful
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="Schedule Object">
    <ResponseField name="id" type="string">
      Unique schedule ID
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status: `pending`, `published`, `failed`, or `draft`
    </ResponseField>

    <ResponseField name="scheduledDateTime" type="string">
      ISO 8601 datetime when the post will be/was published
    </ResponseField>

    <ResponseField name="platform" type="string">
      Target platform: `youtube`, `tiktok`, or `instagram`
    </ResponseField>

    <ResponseField name="integration" type="object">
      Connected platform account details
    </ResponseField>

    <ResponseField name="video" type="object">
      Video information including signed URLs
    </ResponseField>

    <ResponseField name="platformData" type="object">
      Platform-specific metadata (title, description, tags, etc.)
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      When the schedule was created
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      When the schedule was last updated
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Request Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.hooked.so/v1/schedule/post_abc123xyz" \
    -H "x-api-key: your_api_key_here"
  ```

  ```javascript Node.js theme={null}
  const scheduleId = 'post_abc123xyz';

  const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
    method: 'GET',
    headers: {
      'x-api-key': process.env.HOOKED_API_KEY
    }
  });

  const data = await response.json();
  console.log('Schedule:', data.data);
  console.log('Status:', data.data.status);
  console.log('Scheduled for:', data.data.scheduledDateTime);
  ```

  ```python Python theme={null}
  import requests

  schedule_id = 'post_abc123xyz'

  response = requests.get(
      f'https://api.hooked.so/v1/schedule/{schedule_id}',
      headers={'x-api-key': 'your_api_key_here'}
  )

  data = response.json()
  print('Status:', data['data']['status'])
  print('Scheduled for:', data['data']['scheduledDateTime'])
  ```

  ```php PHP theme={null}
  $scheduleId = 'post_abc123xyz';

  $ch = curl_init();
  curl_setopt_array($ch, [
      CURLOPT_URL => "https://api.hooked.so/v1/schedule/{$scheduleId}",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER => [
          'x-api-key: your_api_key_here'
      ]
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  $data = json_decode($response, true);
  print_r($data['data']);
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      "io"
      "net/http"
  )

  func main() {
      scheduleId := "post_abc123xyz"
      url := fmt.Sprintf("https://api.hooked.so/v1/schedule/%s", scheduleId)

      req, _ := http.NewRequest("GET", url, nil)
      req.Header.Set("x-api-key", "your_api_key_here")

      client := &http.Client{}
      resp, _ := client.Do(req)
      defer resp.Body.Close()

      body, _ := io.ReadAll(resp.Body)
      fmt.Println(string(body))
  }
  ```
</RequestExample>

***

## Response Examples

<ResponseExample>
  ```json Success Response - Pending theme={null}
  {
    "success": true,
    "data": {
      "id": "post_abc123xyz",
      "status": "pending",
      "scheduledDateTime": "2024-03-15T14:00:00.000Z",
      "platform": "youtube",
      "integration": {
        "id": "int_yt_def456",
        "type": "youtube",
        "account": {
          "id": "UC1234567890",
          "name": "My YouTube Channel",
          "username": "mychannel",
          "avatarUrl": "https://yt3.ggpht.com/..."
        }
      },
      "video": {
        "id": "vid_ghi789",
        "name": "10 Tips for Productivity",
        "url": "https://cdn.hooked.so/signed/...",
        "thumbnail": "https://cdn.hooked.so/signed/...",
        "durationInSeconds": 45
      },
      "platformData": {
        "title": "10 Tips for Productivity",
        "description": "Learn how to boost your productivity...",
        "tags": ["productivity", "tips", "workflow"],
        "privacyStatus": "public",
        "madeForKids": false
      },
      "createdAt": "2024-03-10T10:00:00.000Z",
      "updatedAt": "2024-03-10T10:00:00.000Z"
    }
  }
  ```

  ```json Success Response - Published theme={null}
  {
    "success": true,
    "data": {
      "id": "post_abc123xyz",
      "status": "published",
      "scheduledDateTime": "2024-03-15T14:00:00.000Z",
      "platform": "youtube",
      "integration": {
        "id": "int_yt_def456",
        "type": "youtube",
        "account": {
          "id": "UC1234567890",
          "name": "My YouTube Channel",
          "username": "mychannel",
          "avatarUrl": "https://yt3.ggpht.com/..."
        }
      },
      "video": {
        "id": "vid_ghi789",
        "name": "10 Tips for Productivity",
        "url": "https://cdn.hooked.so/signed/...",
        "thumbnail": "https://cdn.hooked.so/signed/...",
        "durationInSeconds": 45
      },
      "platformData": {
        "title": "10 Tips for Productivity",
        "description": "Learn how to boost your productivity...",
        "tags": ["productivity", "tips"],
        "privacyStatus": "public",
        "publishedUrl": "https://youtube.com/shorts/abc123",
        "publishedAt": "2024-03-15T14:00:05.000Z"
      },
      "createdAt": "2024-03-10T10:00:00.000Z",
      "updatedAt": "2024-03-15T14:00:05.000Z"
    }
  }
  ```

  ```json Error Response - Not Found theme={null}
  {
    "code": "not_found",
    "message": "Schedule not found",
    "details": {
      "resource_id": "post_invalid",
      "resource_type": "Schedule"
    }
  }
  ```

  ```json Error Response - Forbidden theme={null}
  {
    "code": "forbidden",
    "message": "Schedule does not belong to your team",
    "details": {}
  }
  ```
</ResponseExample>

***

## Status Values

| Status      | Description                                                                 |
| ----------- | --------------------------------------------------------------------------- |
| `pending`   | Waiting to be published at the scheduled time                               |
| `published` | Successfully published. Check `platformData.publishedUrl` for the live link |
| `failed`    | Publishing failed. Check `platformData.error` for details                   |
| `draft`     | Saved but not scheduled                                                     |

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Update Schedule" icon="edit" href="/api-reference/schedule/update">
    Change the scheduled time or metadata
  </Card>

  <Card title="Cancel Schedule" icon="trash" href="/api-reference/schedule/delete">
    Cancel a pending scheduled post
  </Card>

  <Card title="List All" icon="list" href="/api-reference/schedule/list">
    View all scheduled posts
  </Card>

  <Card title="Webhooks" icon="webhook" href="/guides/webhooks">
    Get notified on status changes
  </Card>
</CardGroup>


## OpenAPI

````yaml GET /v1/schedule/{scheduleId}
openapi: 3.0.0
info:
  title: Hooked API
  version: 1.0.0
  description: AI Video Generation API
servers:
  - url: https://api.hooked.so
security:
  - ApiKeyAuth: []
paths:
  /v1/schedule/{scheduleId}:
    get:
      tags:
        - Scheduling
      summary: Get Schedule Details
      description: Get detailed information about a specific scheduled post
      operationId: getScheduleDetails
      parameters:
        - name: scheduleId
          in: path
          description: Schedule ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````