# Targeting with TO Field

The `TO` field allows you to specify a list of feeds to which the activity should be copied. One way to think about it is as the CC functionality of email.

<Admonition type="info">

If initial activity is removed from the origin feed, it's also removed from all TO targeted feeds and origin feed followers.

</Admonition>

### Use Case: Mentions

Targeting is useful when you want to support @mentions and notify users. An example is shown below:

```python label="Python"
# Add the activity to Eric's feed and to Jessica's notification feed
activity = {
  "actor":"user:Eric",
  "message": "@Jessica check out getstream.io it's so dang awesome.",
  "verb":"tweet",
  "object":"tweet:id",
  "to":["notification:Jessica"]
}
user_feed_1.add_activity(activity)
# In production use user ids, not their usernames
```

<Admonition type="info">

The `TO` field is limited to a maximum of 100 targets per API request.

</Admonition>

### Use Case: Organizations & Topics

Another everyday use case is for teams, organizations or topics.

For example, one of our customers runs a football community. Updates about a player should also be added to their team's feed. Stream supports this by adding the activity to the player's feed, and specifying the target feeds in the `TO` field:

```python label="Python"
# The TO field ensures the activity is send to the player, match and team feed
activity_data = {'actor': 'Player:Suarez', 'verb': 'foul', 'object': 'Player:Ramos',
  'match': {'name': 'El Clasico', 'id': 10},
  'to': ['team:barcelona', 'match:1']
}
player_feed_1.add_activity(activity_data)
```

<Admonition type="info">

By default only the user, flat, aggregated and notification feed groups are set up automatically. You'll need to go to the [dashboard](https://getstream.io/signin/?product=feeds) and create feeds called team, player and match for the above example to work.

</Admonition>

## Update to targets

To targets can be updated later on to change where the activity is copied. This API requires server side auth and requires foreign id and time.

```python label="Python"
# to add/remove
feed.update_activity_to_targets(
 foreign_id, time, added_targets=added_targets, removed_targets=removed_targets
)

# to set/replace
feed.update_activity_to_targets(foreign_id, time, new_targets=new_targets)
```


---

This page was last updated at 2026-09-08T17:13:38.530Z.

For the most recent version of this documentation, visit [https://getstream.io/activity-feeds/docs/python/v2/targeting/](https://getstream.io/activity-feeds/docs/python/v2/targeting/).