Add and remove tags across multiple assets in a single request with per-asset control.
What this endpoint does
Bulk-applies and removes tags across multiple assets in a single request. Each asset in the asset_tags map can have independent add_tags and remove_tags arrays. The operation is semi-asynchronous: the API waits up to 2 seconds for completion before responding. If not finished, it returns task_ids for polling via ASI Tagging: Get Task Status. Even when complete: true, indexing propagation can take up to 5 minutes before tags appear in filters and queries. Tags used here are auto-created if new. The project_id comes from GET https://api.securitytrails.com/v2/projects (undocumented on this site). Authentication: apikey header.
Response data
Returns {"data": {"add_tags": [...], "remove_tags": [...], "assets": [...], "complete": bool, "task_ids": [...]}}. When complete is true, all operations finished synchronously. When false, poll task_ids via Get Task Status. The add_tags/remove_tags fields reflect aggregated tag names across all assets in the request.
