Overview
The Segments Remove Members endpoint allows you to remove specific people from a segment by their Minerva PIDs. This is useful for cleaning segments, removing opt-outs, excluding deceased individuals, or managing dynamic cohorts. How It Works:- Provide a
segment_idand an array ofminerva_pidsto remove - The API validates each PID against the Minerva database
- Valid PIDs that are members of the segment are removed
- The segment’s
current_sizeis automatically decremented - PIDs not in the segment or invalid PIDs are reported but don’t cause errors
first_added_at timestamp is restored, maintaining historical continuity.
Request
Headers
Your API key for authentication
application/json
Request Body
The request body must be a JSON object containing:The UUID of the target segment (from the segments/create endpoint). The segment must exist and belong to your organization.
Array of Minerva person identifiers (strings) to remove from the segment. PIDs follow the format “p-”. There is no strict upper limit on array size, but keep batches reasonable for performance (typically 1,000-10,000).
Request Example
Response
Success Response
The API returns a detailed breakdown of the removal operation.Unique identifier for this API request, useful for debugging and support
Detailed results object containing operation statistics and invalid PIDs
ISO 8601 timestamp (YYYY-MM-DDTHH:MM:SS.ffffffZ format) when the operation completed
Results Object Structure
Array of Minerva PID strings that were not found in the Minerva database. These PIDs could not be processed. This typically indicates PIDs that don’t exist, were incorrectly formatted, or came from a different data source.
Count of PIDs successfully removed from the segment. Only counts PIDs that were actually members of the segment and were valid. PIDs not in the segment (even if valid) are not counted here.
The total number of unique members remaining in the segment after this operation completes. This reflects the segment’s size after the deletions.
- 2 PIDs submitted in the request
- 0 PIDs invalid (all were found in the database)
- 2 PIDs deleted (both were members of the segment and successfully removed)
- 1,521 total members remaining in the segment (down from 1,523)
- 3 PIDs submitted
- 1 PID invalid (
p-invalid999not in database) - 1 PID not in segment (valid but wasn’t a member - implicitly: 3 - 1 invalid - 1 deleted = 1)
- 1 PID deleted (was a member and removed)
- 1,520 members remaining
Error Responses
The API returns standard HTTP status codes with descriptive error messages:401- Unauthorized: Invalid or missing API key in x-api-key header404- Not Found: Segment with the providedsegment_iddoes not exist in your organization OR attempting to use v1 API version (only v2 supported)405- Method Not Allowed: Using GET, PUT, DELETE, or other methods (only POST supported)422- Unprocessable Entity: Request body is not valid JSON, missing required fields (segment_idorminerva_pids), orminerva_pidsis not an array500- Internal Server Error: Unexpected server error occurred
Error Examples
Segment not found:Implementation Notes
- API Version: Only v2 is supported. Using
/v1/segments/members/removereturns a 404 error. - HTTP Method: Only POST requests are accepted.
- Partial Success: Invalid PIDs are reported in
invalid_minerva_pidsbut don’t cause the entire operation to fail. Valid PIDs are still removed. - Idempotency: Attempting to remove a PID not in the segment is safe and not an error - it simply won’t be counted in
n_deleted. - Atomicity: The operation is atomic for valid PIDs - either all are removed successfully, or none are (in case of database errors).
- Batch Size: There’s no hard limit on array size, but for optimal performance keep batches between 1,000-10,000 PIDs.
- Validation: Each PID is validated against the Minerva database. PIDs not found in the database are returned as invalid.
- Historical Preservation: Removing a member deletes their current membership but preserves historical tracking. If re-added, their original
first_added_attimestamp is restored.
Performance Considerations
- Throughput: The endpoint handles large batches efficiently via bulk SQL operations
- Response Time: Expect ~100-500ms for batches of 1,000 PIDs, scaling roughly linearly
- Concurrent Requests: Multiple concurrent remove operations on the same segment are safe
Related Endpoints
- Add Members to Segment - Add members back or populate initially
- Get Segment Members - View current members before removing
- Death Signals - Identify deceased members for removal
- Create Segment - Create the segment initially

