Find posts saved by this work

social.editions.by-run@1

Find the posts a piece of work actually saved, including drafts kept when it stopped. Requires Read social, current edition access and the exact run-inspector binding on the same key. This read never starts writing, approves or publishes.

Find drafts kept after stopping

Use the root run returned by Generate. The response lists saved editions only. Unknown, foreign or undisclosable runs return no editions; denied edition access refuses without a result. Work must fit within ten editions and Automations' finite lineage projection bound.

# A new operationId for each new request; the same one to retry it.
curl https://api.growlocal.site/api/v1/profiles/YOUR_BUSINESS_ID/invocations \
  -H "Authorization: Bearer gl_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "target": {
    "featureId": "YOUR_FEATURE_ID",
    "export": "editionsByRun",
    "contractRef": "social.editions.by-run@1"
  },
  "operationId": "saved-posts-1",
  "input": {
    "source": {
      "featureId": "juniper-cakes.automations",
      "runRef": "YOUR_ROOT_RUN_REFERENCE"
    }
  }
}'
// A new operationId for each new request; the same one to retry it.
const response = await fetch(
  "https://api.growlocal.site/api/v1/profiles/YOUR_BUSINESS_ID/invocations",
  {
    method: "POST",
    headers: {
      Authorization: "Bearer gl_YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      "target": {
        "featureId": "YOUR_FEATURE_ID",
        "export": "editionsByRun",
        "contractRef": "social.editions.by-run@1"
      },
      "operationId": "saved-posts-1",
      "input": {
        "source": {
          "featureId": "juniper-cakes.automations",
          "runRef": "YOUR_ROOT_RUN_REFERENCE"
        }
      }
    }),
  },
);
const receipt = await response.json();
console.log(response.status, receipt);
import requests

# A new operationId for each new request; the same one to retry it.
response = requests.post(
    "https://api.growlocal.site/api/v1/profiles/YOUR_BUSINESS_ID/invocations",
    headers={"Authorization": "Bearer gl_YOUR_API_KEY"},
    json={
        "target": {
            "featureId": "YOUR_FEATURE_ID",
            "export": "editionsByRun",
            "contractRef": "social.editions.by-run@1",
        },
        "operationId": "saved-posts-1",
        "input": {
            "source": {
                "featureId": "juniper-cakes.automations",
                "runRef": "YOUR_ROOT_RUN_REFERENCE",
            },
        },
    },
    timeout=30,
)
print(response.status_code, response.json())

Parameters

What goes in input:

Name Type Required Description
source object Yes The root run returned when the work started.
source.featureId string Yes The Automations feature that owns the run, not the Social feature.
source.runRef string Yes The opaque root run reference. A child reference does not select its parent's work.

Response

A call that worked answers 200 with an applied receipt; its output holds these fields. GET /catalog/social.editions.by-run@1 answers the complete shape as JSON Schema.

Name Type Description
editions array of object Up to ten currently readable saved editions, oldest first; no total or inferred account failures.
editions[].editionRef object The saved edition to open with the edition read or editor.
editions[].editionRef.businessProfileId string The business that owns the edition.
editions[].editionRef.featureId string The edition's Data feature.
editions[].editionRef.collectionId string The editions table.
editions[].editionRef.id string The edition row id.
editions[].editionRevision integer The edition's current revision, including later edits.
editions[].accountRef object The account the edition was saved for.
editions[].accountRef.businessProfileId string The business that owns the account.
editions[].accountRef.featureId string The account's Data feature.
editions[].accountRef.collectionId string The accounts table.
editions[].accountRef.id string The account row id.
editions[].platform one of facebook, instagram, linkedin, x, tiktok, youtube, pinterest, threads, bluesky The edition's saved destination platform.
{
  "status": "applied",
  "operationId": "saved-posts-1",
  "output": {
    "editions": [
      {
        "editionRef": {
          "businessProfileId": "YOUR_BUSINESS_ID",
          "featureId": "juniper-cakes.data",
          "collectionId": "juniper-cakes.editions",
          "id": "YOUR_EDITION_ID"
        },
        "editionRevision": 1,
        "accountRef": {
          "businessProfileId": "YOUR_BUSINESS_ID",
          "featureId": "juniper-cakes.data",
          "collectionId": "juniper-cakes.social-accounts",
          "id": "YOUR_ACCOUNT_ID"
        },
        "platform": "facebook"
      }
    ]
  }
}

Errors

It reads and changes nothing. Besides the answers every request can get (Errors), its receipt can say:

Status HTTP What it means
rejected 400, or 403 when it's a matter of access Not done. diagnostics says why: each has a code, a path into what you sent and a message.

The codes in diagnostics you're most likely to see:

Code Status What it means
DATA.POLICY_DENIED rejected Current policy does not permit reading the editions; no result or count is disclosed.