---
title: "Get scheduling job"
method: GET
path: "/api/apps/{app_id}/social-calendar/posts/schedule/{job_id}"
---

# Get scheduling job

`GET /api/apps/{app_id}/social-calendar/posts/schedule/{job_id}`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Reports on a [scheduling job](/developers/references/apps-api/sections/virality#scheduling-jobs) started by [Start scheduling posts](/api-reference/start-scheduling-posts).

Poll it until `status` is `completed` or `failed`. A completed job carries `result`, the count of what happened to each post it took on. A failed job leaves `result` empty and sets `error` to a fixed message that says nothing about the cause. The posts it had already dealt with keep the status that run gave them, and the rest are untouched, so you can start scheduling the same range again.

## Path parameters

- `job_id` string, required — ID of the scheduling job, as returned by [Start scheduling posts](/api-reference/start-scheduling-posts).
- `app_id` string, required — ID of the app whose social calendar you want.

## Response `200`

The job's progress, and its result once it completes.

- ScheduleJobResponse
  - `job_id` string, required — ID of the scheduling job. Pass it as `job_id` to [Get scheduling job](/api-reference/get-scheduling-job).
  - `status` string, required — State of the job. Either `pending`, `running`, `completed`, or `failed`. See [Scheduling jobs](/developers/references/apps-api/sections/virality#scheduling-jobs) for what each value means. A range holding nothing to schedule comes back `completed` straight away.
  - `phase` string, required — How far the job has got, for display only. Either `pending`, `prepare`, `sandbox_sync`, `finalize`, or `completed`. Read `status`, not `phase`, to decide when the job is done, since phases change as the pipeline does.
  - `result` MaterializationSummary
    - `selected` integer — How many posts the job took on: the ones in the range you asked for that were waiting to be handed over, which is every approved post plus the ones an earlier run left in `needs_reconnect` or `not_materialized_plan_limit`. A post still in `proposal` is not among them.
    - `materialized` integer — How many posts are now handed to the publisher and will go out at their scheduled time.
    - `created_workflows` integer — How many of the handed-over posts needed a new automation created for them.
    - `reused_workflows` integer — How many of the handed-over posts reused an automation an earlier run had already created.
    - `plan_limited` integer — How many posts weren't handed over because publishing scheduled posts needs a paid workspace plan. They stay on the calendar as `not_materialized_plan_limit`.
    - `needs_reconnect` integer — How many posts weren't handed over because the app has no single connected account with permission to publish to their platform. They stay on the calendar as `needs_reconnect`, and a later run picks them up.
    - `failed` integer — How many posts can't be published at all, because their platform isn't publishable or their scheduled time had already passed. They stay on the calendar as `failed`, and this is final.
    - `skipped` integer — How many posts the job left alone because they were deleted or changed after it picked them up.
  - `error` string, nullable — Set when `status` is `failed`, and `null` otherwise. It is always the same fixed message and carries no detail about the failure, so treat it as a flag rather than something to parse or show as a reason.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have editor access to this app, or you used a workspace API key.
- `404` — App not found, the job doesn't belong to this app, or the social calendar is not enabled for your account.
- `429` — Rate limit exceeded (40 requests per minute), shared across every social calendar endpoint except the ones that create, edit, delete, or approve posts. See [Rate limits](/developers/references/apps-api/get-started/rate-limits).

## Changes

> 18 revisions in range; 1 not diffed.

- **2026-09-03** `9f4b5dac6451` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/social-calendar/posts/schedule/:job_id/get.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/28fc82924122?raw)
