---
updatedAt: 2026-08-24T09:14:57.000Z
agentTools:
  projectIndex: https://developers.vibe.co/llms.txt
---

# Delete an audience

**Scopes:**
`audiences:write`
<br>*Rate limits*:<br>Burst: `2/s`<br>Steady: `30/m`


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "paths": {
    "/audiences/{audience_id}": {
      "delete": {
        "operationId": "deleteAudience",
        "parameters": [
          {
            "name": "audience_id",
            "required": true,
            "in": "path",
            "description": "Stable identifier of the audience",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Audience deleted"
          },
          "400": {
            "description": "Bad request error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "missingApiKey": {
                    "summary": "Missing API key",
                    "value": {
                      "error": {
                        "type": "validation",
                        "message": "Missing API Key",
                        "status": 400,
                        "detail": null,
                        "request_id": "req_8f3a4b2c",
                        "doc_url": null
                      }
                    }
                  },
                  "validationError": {
                    "summary": "Validation error",
                    "value": {
                      "error": {
                        "type": "validation",
                        "message": "Validation error",
                        "status": 400,
                        "detail": {
                          "validation": [
                            "id must be a string"
                          ]
                        },
                        "request_id": "req_8f3a4b2c",
                        "doc_url": null
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "invalidApiKey": {
                    "summary": "Invalid API key",
                    "value": {
                      "error": {
                        "type": "invalid_token",
                        "message": "Unauthorized",
                        "status": 401,
                        "detail": null,
                        "request_id": "req_8f3a4b2c",
                        "doc_url": "https://developers.vibe.co/errors/invalid-token"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "insufficientScope": {
                    "summary": "Missing required scope",
                    "value": {
                      "error": {
                        "type": "insufficient_scope",
                        "message": "Missing required scope",
                        "status": 403,
                        "detail": {
                          "required": "audiences:write",
                          "granted": [
                            "test"
                          ]
                        },
                        "request_id": "req_8f3a4b2c",
                        "doc_url": "https://developers.vibe.co/reference/oauth2token"
                      }
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Audience cannot be deleted because one or more campaigns still reference it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudienceDeleteConflictResponse"
                }
              }
            }
          }
        },
        "summary": "Delete an audience",
        "tags": [
          "Audiences"
        ],
        "x-rate-limit": {
          "rps": 2,
          "rpm": 30
        },
        "x-scopes": [
          "audiences:write"
        ],
        "description": "**Scopes:**\n`audiences:write`\n<br>*Rate limits*:<br>Burst: `2/s`<br>Steady: `30/m`\n"
      }
    }
  },
  "info": {
    "title": "Vibe Public API",
    "description": "Vibe Public API revision 2026-06-01",
    "version": "2026-06-01",
    "contact": {}
  },
  "tags": [
    {
      "name": "Audiences",
      "description": "An Audience is a list of user identifiers Vibe can target or exclude. You populate an audience by opening a **sync**, uploading one or more **batches** of identifiers, then marking the final batch with `last_batch_flag: true`.\n\nConcurrency: only one non-terminal sync may exist per audience at a time. Syncs expire after 24 hours of inactivity.\n\n> ⚠️ **Gotcha — silent zero-match failures**\n>\n> If your identifiers are hashed with the wrong algorithm or normalization, the sync will succeed and the audience will show as Active, but it will match zero CTV profiles. There is no error signal. See the [HEM format specification](https://developers.vibe.co/docs/hem-format) for the exact requirements."
    }
  ],
  "servers": [
    {
      "url": "https://api.vibe.co",
      "description": "Production API"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http"
      }
    },
    "schemas": {
      "ErrorDetail": {
        "type": "object",
        "properties": {
          "required": {
            "type": "string",
            "example": "audiences:write"
          },
          "granted": {
            "example": [
              "audiences:read",
              "reporting:read"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "required",
          "granted"
        ]
      },
      "ApiError": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "insufficient_scope",
              "invalid_token",
              "validation",
              "internal_error"
            ]
          },
          "message": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 403
          },
          "detail": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorDetail"
              }
            ]
          },
          "request_id": {
            "type": "string",
            "example": "req_8f3a4b2c"
          },
          "doc_url": {
            "type": "string",
            "example": "https://developers.vibe.co/reference/oauth2token",
            "nullable": true
          }
        },
        "required": [
          "type",
          "message",
          "status",
          "request_id"
        ]
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          }
        },
        "required": [
          "error"
        ]
      },
      "BlockingCampaign": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier of the campaign blocking deletion"
          },
          "name": {
            "type": "string",
            "description": "Display name of the blocking campaign"
          },
          "status": {
            "type": "string",
            "description": "Current campaign status"
          }
        },
        "required": [
          "id",
          "name",
          "status"
        ]
      },
      "AudienceDeleteConflictDetail": {
        "type": "object",
        "properties": {
          "blocking_campaigns": {
            "description": "Campaigns that still reference the audience and must be detached first",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BlockingCampaign"
            }
          }
        },
        "required": [
          "blocking_campaigns"
        ]
      },
      "AudienceDeleteConflictError": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "conflict"
            ]
          },
          "message": {
            "type": "string",
            "example": "Audience is in use by one or more campaigns"
          },
          "status": {
            "type": "number",
            "example": 409
          },
          "detail": {
            "$ref": "#/components/schemas/AudienceDeleteConflictDetail"
          },
          "request_id": {
            "type": "string",
            "example": "req_8f3a4b2c"
          },
          "doc_url": {
            "type": "object",
            "nullable": true,
            "example": null
          }
        },
        "required": [
          "type",
          "message",
          "status",
          "detail",
          "request_id",
          "doc_url"
        ]
      },
      "AudienceDeleteConflictResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/AudienceDeleteConflictError"
          }
        },
        "required": [
          "error"
        ]
      }
    }
  },
  "security": [
    {
      "bearer": []
    }
  ]
}
```