LeadSail
Leads

Approve or reject a lead

Sets the approval status for a lead that has a pending approval. Approving allows the lead to proceed with delivery. Rejecting updates the lead status to rejected. Setting to pending resets the approval decision.

POST
/api/v1/leads/{leadId}/approve

Authorization

ApiKeyAuth
X-API-Key<token>

API key generated from your Vayaflow dashboard Settings page

In: header

Path Parameters

leadId*string

The lead ID

Request Body

application/json

status*string

The approval decision

Value in"approved" | "rejected" | "pending"
reason?string

Optional reason for the decision

Response Body

application/json

application/json

application/json

application/json

package mainimport (  "fmt"  "net/http"  "io/ioutil"  "strings")func main() {  url := "https://api.leadsail.app/api/v1/leads/string/approve"  body := strings.NewReader(`{    "status": "approved"  }`)  req, _ := http.NewRequest("POST", url, body)  req.Header.Add("Content-Type", "application/json")  res, _ := http.DefaultClient.Do(req)  defer res.Body.Close()  body, _ := ioutil.ReadAll(res.Body)  fmt.Println(res)  fmt.Println(string(body))}
{
  "success": true,
  "data": {
    "leadId": "string",
    "approval": {
      "status": "string",
      "campaignId": "string",
      "decidedAt": "string",
      "decidedBy": "string",
      "reason": "string"
    }
  }
}
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid input data",
    "details": [
      "string"
    ]
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  }
}
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  }
}