Inbox

PATCH /public/v1/approvals/messages/{messageId}

Edit the body of an unsent message draft. Works for every draft in the sequence: the first outreach message, follow-ups, and re-engagements alike. A draft stays editable while it is pending approval and after it has been approved but not yet sent (the send path reads the latest body at send time), so an approved draft can still be corrected before its send window. Once a message has been sent it can no longer be edited. An already-sent message returns 400. A 409 is reserved for the narrow case where the message is sent concurrently, after this request read its status but before the write lands. A draft stays editable after its campaign is deleted, matching the in-app behaviour. subject is accepted on INMAIL messages only, and cannot be blank once set. Character limits are enforced per message type: CONNECT 300 (200 on a Basic, non-Premium LinkedIn seat), INMAIL 1700 (subject 200), FOLLOW_UP 1000, RE_ENGAGEMENT 1000, FIRST_DEGREE_INTRO 8000.

PATCH /public/v1/approvals/messages/{messageId}

PATCH /public/v1/approvals/messages/{messageId}

curl --request PATCH \
  --url 'https://api.joinvalley.co/public/v1/approvals/messages/{MESSAGEID}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "message": "Hi Sam, circling back on this. Worth a quick look?"
}'
{
  "statusCode": 1,
  "status": true,
  "message": "<string>",
  "data": {
    "messageId": "<string>",
    "messageType": "<string>",
    "campaignId": "<string>",
    "prospectId": "<string>",
    "status": "<string>"
  }
}

Default Response

Authorizations

  • x-api-key string required header

    Your Valley API key.

Path Parameters

  • messageId string required

Request Body

application/json
  • message string required

    The new message body. Replaces the existing draft in full.

  • subject string

    INMAIL only. Replaces the InMail subject line. Max 200 characters. Cannot be blank: omit the field to leave the existing subject unchanged.

Response

application/json
  • statusCode number
  • status boolean
  • message string
  • data object
    + Show Child Attributes
    • messageId string
    • messageType string
    • campaignId string
    • prospectId string
    • status string