---
title: "Write Batch"
method: POST
path: "/agent-writes"
tags: ["approved agent writes"]
---

# Write Batch

`POST /agent-writes`

## Request

- Base URL: `https://api.tickertrac.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tickertrac.com/agent-writes`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Response `200`

Successful Response

- union
  - SetupBatchOut
    - `batch_id` string, uuid, required
    - `label` string, required
    - `credential_name` string, required
    - `payload_hash` string, required
    - `state_hash` string, required
    - `status` 'prepared' | 'approved' | 'applied' | 'rejected' | 'expired', required
    - `created_at` string, date-time, required
    - `expires_at` string, date-time, required
    - `approved_at` string, date-time, nullable
    - `operations` Preview[], required
      - `kind` string, required
      - `target` string, required
      - `target_label` string, nullable
      - `security_id` integer, nullable
      - `issuer_id` integer, nullable
      - `issuer_name` string, nullable
      - `security_type` string, nullable
      - `share_class` string, nullable
      - `before` string, nullable
      - `after` string, nullable
      - `expected_version` integer, nullable
      - `changed` boolean, required
      - `selection` string, required
    - `review_url` string, required
    - `receipt` SetupReceipt
      - `batch_id` string, uuid, required
      - `payload_hash` string, required
      - `applied_at` string, date-time, required
      - `records` SavedRecord[], required
        - `kind` 'watchlist' | 'company' | 'theme', required
        - `target` string, required
        - `target_label` string, nullable
        - `version` integer, nullable
        - `version_id` integer, nullable
        - `changed` boolean, required
        - `monitoring_selected` boolean, nullable
        - `content_hash` string, nullable
      - `research_started` false
      - `monitoring_selection_changed` boolean
      - `provider_calls` 0
  - BatchOut
    - `batch_id` string, uuid, required
    - `label` string, required
    - `credential_name` string, required
    - `payload_hash` string, required
    - `state_hash` string, required
    - `status` 'prepared' | 'approved' | 'applied' | 'rejected' | 'expired', required
    - `created_at` string, date-time, required
    - `expires_at` string, date-time, required
    - `approved_at` string, date-time, nullable
    - `operations` Preview[], required
      - `kind` string, required
      - `target` string, required
      - `target_label` string, nullable
      - `security_id` integer, nullable
      - `issuer_id` integer, nullable
      - `issuer_name` string, nullable
      - `security_type` string, nullable
      - `share_class` string, nullable
      - `before` string, nullable
      - `after` string, nullable
      - `expected_version` integer, nullable
      - `changed` boolean, required
      - `selection` string, required
    - `review_url` string, required
    - `receipt` WriteReceipt
      - `batch_id` string, uuid, required
      - `payload_hash` string, required
      - `applied_at` string, date-time, required
      - `records` SavedRecord[], required
        - `kind` 'watchlist' | 'company' | 'theme', required
        - `target` string, required
        - `target_label` string, nullable
        - `version` integer, nullable
        - `version_id` integer, nullable
        - `changed` boolean, required
        - `monitoring_selected` boolean, nullable
        - `content_hash` string, nullable
      - `research_started` false
      - `monitoring_selection_changed` false
      - `provider_calls` 0
  - PermittedWriteResult
    - `batch` BatchOut, required
      - `batch_id` string, uuid, required
      - `label` string, required
      - `credential_name` string, required
      - `payload_hash` string, required
      - `state_hash` string, required
      - `status` 'prepared' | 'approved' | 'applied' | 'rejected' | 'expired', required
      - `created_at` string, date-time, required
      - `expires_at` string, date-time, required
      - `approved_at` string, date-time, nullable
      - `operations` Preview[], required
        - `kind` string, required
        - `target` string, required
        - `target_label` string, nullable
        - `security_id` integer, nullable
        - `issuer_id` integer, nullable
        - `issuer_name` string, nullable
        - `security_type` string, nullable
        - `share_class` string, nullable
        - `before` string, nullable
        - `after` string, nullable
        - `expected_version` integer, nullable
        - `changed` boolean, required
        - `selection` string, required
      - `review_url` string, required
      - `receipt` WriteReceipt
        - `batch_id` string, uuid, required
        - `payload_hash` string, required
        - `applied_at` string, date-time, required
        - `records` SavedRecord[], required
          - `kind` 'watchlist' | 'company' | 'theme', required
          - `target` string, required
          - `target_label` string, nullable
          - `version` integer, nullable
          - `version_id` integer, nullable
          - `changed` boolean, required
          - `monitoring_selected` boolean, nullable
          - `content_hash` string, nullable
        - `research_started` false
        - `monitoring_selection_changed` false
        - `provider_calls` 0
    - `permission` PermissionSnapshot, required
      - `id` string, uuid, required
      - `credential_id` integer, required
      - `credential_name` string, required
      - `watchlist_id` integer, required
      - `watchlist_name` string, required
      - `actions` string[], required
      - `daily_limit` integer, required
      - `created_at` string, date-time, required
      - `expires_at` string, date-time, required
      - `rules_hash` string, required
  - PermissionResult
    - `permission` PermissionOut, required
      - `id` string, uuid, required
      - `credential_id` integer, required
      - `credential_name` string, required
      - `watchlist_id` integer, required
      - `watchlist_name` string, required
      - `actions` string[], required
      - `daily_limit` integer, required
      - `created_at` string, date-time, required
      - `expires_at` string, date-time, required
      - `rules_hash` string, required
      - `status` 'active' | 'expired' | 'revoked', required
      - `revoked_at` string, date-time, nullable, required
      - `usage_day` string, date, required
      - `operations_used` integer, required
      - `operations_remaining` integer, required
    - `unavailable_reason` string, nullable
    - `owner_management_url` string
    - `provider_calls` 0

---

[API](https://skmtc.dev/tickertrac/apis/tickerrag-api.md) · [All operations](https://skmtc.dev/tickertrac/apis/tickerrag-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tickertrac/apis/tickerrag-api/revisions/3c7eb0f6425d?raw)
