Skip to main content
POST
/
v1
/
lexi
/
tasks
/
:id
/
dismiss
Dismiss Lexi Task
curl --request POST \
  --url https://api.example.com/v1/lexi/tasks/:id/dismiss \
  --header 'Content-Type: application/json' \
  --data '
{
  "reason": "<string>"
}
'
{
  "data": {
    "task_id": "<string>",
    "status": "<string>"
  }
}

Request

Path Parameters

id
string
required
Task UUID

Headers

Authorization: Bearer wbk_your_api_key_here
Content-Type: application/json

Body Parameters

reason
string
Optional reason for dismissing the task (used for analytics)

Response

data
object
curl -X POST \
  https://nbkxaqxwvkgbddekwsma.supabase.co/functions/v1/api-gateway/v1/lexi/tasks/task-uuid/dismiss \
  -H "Authorization: Bearer wbk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Not relevant right now"
  }'

Example Response

{
  "data": {
    "task_id": "task-uuid",
    "status": "dismissed"
  }
}

When to Dismiss Tasks

Use dismiss when:
  • The task is no longer relevant
  • You want to do it manually instead
  • The task parameters are incorrect
  • You’re testing and want to clean up pending tasks
Dismissed tasks cannot be re-approved. If you change your mind, ask Lexi to create a new task.

Dismiss Reasons (Analytics)

Common reasons tracked for analytics:
ReasonUse Case
not_relevantTask no longer needed
manual_executionWill do it manually
incorrect_paramsWrong search criteria
duplicateTask already exists
testingTest/development task

Example: Review and Dismiss Pattern

# Get all pending tasks
response = requests.get(
    f"{BASE_URL}/v1/lexi/tasks",
    headers=headers,
    params={"status": "pending"}
)

tasks = response.json()["data"]["tasks"]

for task in tasks:
    print(f"\nTask: {task['description']}")
    print(f"Type: {task['type']}")
    print(f"Created: {task['created_at']}")
    
    # Prompt user for action
    action = input("Approve (a), Dismiss (d), or Skip (s)? ")
    
    if action == 'a':
        requests.post(
            f"{BASE_URL}/v1/lexi/tasks/{task['id']}/approve",
            headers=headers
        )
        print("✓ Approved")
    elif action == 'd':
        reason = input("Reason for dismissing? ")
        requests.post(
            f"{BASE_URL}/v1/lexi/tasks/{task['id']}/dismiss",
            headers=headers,
            json={"reason": reason}
        )
        print("✓ Dismissed")

Bulk Dismiss

Dismiss multiple tasks at once:
def dismiss_all_pending_tasks():
    """Dismiss all pending tasks (e.g., for cleanup)"""
    response = requests.get(
        f"{BASE_URL}/v1/lexi/tasks",
        headers=headers,
        params={"status": "pending"}
    )
    
    tasks = response.json()["data"]["tasks"]
    
    for task in tasks:
        requests.post(
            f"{BASE_URL}/v1/lexi/tasks/{task['id']}/dismiss",
            headers=headers,
            json={"reason": "bulk_cleanup"}
        )
        print(f"Dismissed: {task['description']}")

Errors

StatusCodeDescription
400validation_errorTask is not in pending status
401invalid_keyInvalid API key
403insufficient_permissionsMissing lexi permission
404not_foundTask not found
429rate_limitedRate limit exceeded

Example Error (Already Dismissed)

{
  "error": {
    "code": "validation_error",
    "message": "Task has already been dismissed"
  }
}