---
title: "Ask to press the control that changes LinkedIn"
method: POST
path: "/linkedin/agent/actions/{action_id}/commit/"
tags: ["linkedin"]
---

# Ask to press the control that changes LinkedIn

`POST /linkedin/agent/actions/{action_id}/commit/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/commit/`
- Auth: API key in header `X-API-Key`

Asked by a build that resumes steps (resume:v1) right before every press that sends, follows, likes or withdraws. Granted only to the claim named, still this browser's, inside its lease, and to one run of it at a time; the lease moves on with the grant. The grant is the server's record that the step may have happened: no grant, nothing happened. A paused sequence or a closed sending window does not refuse it, because a step already running may finish. A step held into a new day whose limit is spent is refused with requeue_at_reset and waits for the reset; it never fails for it. A message not pressed yet while its sender's inbox goes unread, or its member's reply waits to be read, is refused with wait_for_replies and goes back in line.

## Path parameters

- `action_id` string, uuid, required

## Request body

- AgentCommitSchema
  - `claimed_at` string, date-time, required: The step's claim, exactly as the claim handed it out.
  - `key` string, required: Which control is about to be pressed, e.g. send or connect; for the logs.
  - `run_id` string, required: This browser's run of the step. A new run is started for every resume, and only one run of a claim may press.

## Response `200`

Successful Response

- AgentCommitGrantSchema
  - `claim_expires_at` string, date-time, nullable, required: Granted: press before this, read against server_now, or ask again.
  - `granted` boolean, required: Whether the run may press now.
  - `refusal` 'lost' | 'expired' | 'stale_run' | 'requeue_at_reset' | 'wait_for_replies', required: Why the server would not let a run press the control that changes LinkedIn. ``lost``: the claim is no longer this browser's (settled, put back, or another browser's). ``expired``: it has no lease (a lease that ran out on a claim still this browser's is renewed by the grant). ``stale_run``: another run of the same claim holds the grant. ``requeue_at_reset``: the step was held into a new day whose limit is spent; it waits for the reset, put back to be looked at again, and never fails for it. ``wait_for_replies``: a message not pressed yet, while its sender's inbox goes unread or its recipient's reply waits to be read; put back in line (2026-10-05).
  - `server_now` string, date-time, required: The server's clock when it answered.

## Other responses

- `401`: The agent token is invalid, revoked, or expired.
- `403`: Forbidden
- `404`: No such action on the account this token is bound to.
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
