---
name: "Twitter::API::Trait::ApiMethods"
section: "3pm"
platform: "linux"
package: "libtwitter-api-perl"
version: "1.0006-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Twitter::API::Trait::ApiMethods"
---

# Twitter::API::Trait::ApiMethods(3pm)

Convenient API Methods

## NAME

Twitter::API::Trait::ApiMethods - Convenient API Methods

## VERSION

version 1.0006

## DESCRIPTION

This trait provides convenient methods for calling API endpoints. They are Net::Twitter compatible, with the same names and calling conventions.

Refer to Twitter's API documentation \<https://developer.twitter.com/en/docs/api-reference-index\> for details about each method's parameters.

These methods are simply shorthand forms of `"get"` and `"post"`.  All methods can be called with a parameters hashref. It can be omitted for endpoints that do not require any parameters, such as `"mentions"`. For example, all of these calls are equivalent:

```
    $client->mentions;
    $client->mentions({});
    $client->get('statuses/mentions_timeline');
    $client->get('statuses/mentions_timeline', {});
```

Use the parameters hashref to pass optional parameters. For example,

```
    $client->mentions({ count => 200, trim_user=>'true' });
```

Some methods, with required parameters, can take positional parameters. For example, `"geo_id"` requires a `"place_id"` parameter. These calls are equivalent:

```
    $client->place_id($place);
    $client->place_id({ place_id => $place });
```

When positional parameters are allowed, they must be specified in the correct order, but they don't all need to be specified. Those not specified positionally can be added to the parameters hashref. For example, these calls are equivalent:

```
    $client->add_collection_entry($id, $tweet_id);
    $client->add_collection_entry($id, { tweet_id => $tweet_id);
    $client->add_collection_entry({ id => $id, tweet_id => $tweet_id });
```

Many calls require a `"screen_name"` or `"user_id"`. Where noted, you may pass either ID as the first positional parameter. Twitter::API will inspect the value. If it contains only digits, it will be considered a `"user_id"`. Otherwise, it will be considered a `"screen_name"`. Best practice is to explicitly declare the ID type by passing it in the parameters hashref, because it is possible to for users to set their screen names to a string of digits, making the inferred ID ambiguous. These calls are equivalent:

```
   $client->create_block('realDonaldTrump');
   $client->create_block({ screen_name => 'realDonaldTrump' });
```

Since all of these methods simple resolve to a `"get"` or `"post"` call, see the Twitter::API for details about return values and error handling.

## METHODS

### account\_settings(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-settings\>

### blocking(\[ \\%args \])

Aliases: blocks\_list

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-blocks-list\>

### blocking\_ids(\[ \\%args \])

Aliases: blocks\_ids

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-blocks-ids\>

### collection\_entries(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/get-collections-entries\>

### collections(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/get-collections-list\>

### favorites(\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-favorites-list\>

### followers(\[ \\%args \])

Aliases: followers\_list

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-list\>

### followers\_ids(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-ids\>

### friends(\[ \\%args \])

Aliases: friends\_list

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friends-list\>

### friends\_ids(\[ \\%args \])

Aliases: following\_ids

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friends-ids\>

### friendships\_incoming(\[ \\%args \])

Aliases: incoming\_friendships

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-incoming\>

### friendships\_outgoing(\[ \\%args \])

Aliases: outgoing\_friendships

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-outgoing\>

### geo\_id(\[ $place\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/geo/place-information/api-reference/get-geo-id-place\_id\>

### geo\_search(\[ \\%args \])

\<https://developer.twitter.com/en/docs/geo/places-near-location/api-reference/get-geo-search\>

### get\_configuration(\[ \\%args \])

\<https://developer.twitter.com/en/docs/developer-utilities/configuration/api-reference/get-help-configuration\>

### get\_languages(\[ \\%args \])

\<https://developer.twitter.com/en/docs/developer-utilities/supported-languages/api-reference/get-help-languages\>

### get\_list(\[ \\%args \])

Aliases: show\_list

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-show\>

### get\_lists(\[ \\%args \])

Aliases: list\_lists, all\_subscriptions

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-list\>

### get\_privacy\_policy(\[ \\%args \])

\<https://developer.twitter.com/en/docs/developer-utilities/privacy-policy/api-reference/get-help-privacy\>

### get\_tos(\[ \\%args \])

\<https://developer.twitter.com/en/docs/developer-utilities/terms-of-service/api-reference/get-help-tos\>

### home\_timeline(\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home\_timeline\>

### list\_members(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-members\>

### list\_memberships(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-memberships\>

### list\_ownerships(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-ownerships\>

### list\_statuses(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-statuses\>

### list\_subscribers(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-subscribers\>

### list\_subscriptions(\[ \\%args \])

Aliases: subscriptions

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-subscriptions\>

### lookup\_friendships(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-lookup\>

### lookup\_statuses(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-lookup\>

### lookup\_users(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-lookup\>

### mentions(\[ \\%args \])

Aliases: replies, mentions\_timeline

\<https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-mentions\_timeline\>

### mutes(\[ \\%args \])

Aliases: muting\_ids, muted\_ids

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-ids\>

### muting(\[ \\%args \])

Aliases: mutes\_list

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-list\>

### no\_retweet\_ids(\[ \\%args \])

Aliases: no\_retweets\_ids

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-no\_retweets-ids\>

### oembed(\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-oembed\>

### profile\_banner(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-users-profile\_banner\>

### rate\_limit\_status(\[ \\%args \])

\<https://developer.twitter.com/en/docs/developer-utilities/rate-limit-status/api-reference/get-application-rate\_limit\_status\>

### retweeters\_ids(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweeters-ids\>

### retweets(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweets-id\>

### retweets\_of\_me(\[ \\%args \])

Aliases: retweeted\_of\_me

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweets\_of\_me\>

### reverse\_geocode(\[ $lat, \[ $long, \]\]\[ \\%args \])

\<https://developer.twitter.com/en/docs/geo/places-near-location/api-reference/get-geo-reverse\_geocode\>

### saved\_searches(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-saved\_searches-list\>

### search(\[ $q, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets\>

### sent\_direct\_messages(\[ \\%args \])

Aliases: direct\_messages\_sent

\<https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-sent-message\>

### show\_friendship(\[ \\%args \])

Aliases: show\_relationship

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-show\>

### show\_list\_member(\[ \\%args \])

Aliases: is\_list\_member

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-members-show\>

### show\_list\_subscriber(\[ \\%args \])

Aliases: is\_list\_subscriber, is\_subscriber\_lists

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-subscribers-show\>

### show\_saved\_search(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-saved\_searches-show-id\>

### show\_status(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-show-id\>

### show\_user(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-show\>

### suggestion\_categories(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-suggestions\>

### trends\_available(\[ \\%args \])

\<https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-available\>

### trends\_closest(\[ \\%args \])

\<https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-closest\>

### trends\_place(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place\>

### user\_suggestions(\[ $slug, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-suggestions-slug-members\>

### user\_suggestions\_for(\[ $slug, \]\[ \\%args \])

Aliases: follow\_suggestions

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-suggestions-slug\>

### user\_timeline(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user\_timeline\>

### users\_search(\[ $q, \]\[ \\%args \])

Aliases: find\_people, search\_users

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-search\>

### verify\_credentials(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-verify\_credentials\>

### add\_collection\_entry(\[ $id, \[ $tweet\_id, \]\]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-add\>

### add\_list\_member(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-create\>

### create\_block(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-blocks-create\>

### create\_collection(\[ $name, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-create\>

### create\_favorite(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-favorites-create\>

### create\_friend(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

Aliases: follow, follow\_new, create\_friendship

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create\>

### create\_list(\[ $name, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-create\>

### create\_media\_metadata(\[ \\%args \])

\<https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-metadata-create\>

### create\_mute(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-create\>

Alias: mute

### create\_saved\_search(\[ $query, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-saved\_searches-create\>

### curate\_collection(\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-curate\>

### delete\_list(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-destroy\>

### delete\_list\_member(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-destroy\>

### destroy\_block(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-blocks-destroy\>

### destroy\_collection(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-destroy\>

### destroy\_favorite(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-favorites-destroy\>

### destroy\_friend(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

Aliases: unfollow, destroy\_friendship

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-destroy\>

### destroy\_mute(\[ $screen\_name \| $user\_id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-destroy\>

Alias: unmute

### destroy\_saved\_search(\[ $id, \]\[ \\%args \])

Aliases: delete\_saved\_search

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-saved\_searches-destroy-id\>

### destroy\_status(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-destroy-id\>

### members\_create\_all(\[ \\%args \])

Aliases: add\_list\_members

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-create\_all\>

### members\_destroy\_all(\[ \\%args \])

Aliases: remove\_list\_members

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-destroy\_all\>

### move\_collection\_entry(\[ $id, \[ $tweet\_id, \[ $relative\_to, \]\]\]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-move\>

### remove\_collection\_entry(\[ $id, \[ $tweet\_id, \]\]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-remove\>

### remove\_profile\_banner(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-remove\_profile\_banner\>

### report\_spam(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-users-report\_spam\>

### retweet(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-retweet-id\>

### subscribe\_list(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-subscribers-create\>

### unretweet(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-unretweet-id\>

### unsubscribe\_list(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-subscribers-destroy\>

### update(\[ $status, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update\>

### update\_account\_settings(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-settings\>

### update\_collection(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-update\>

### update\_friendship(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-update\>

### update\_list(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-update\>

### update\_profile(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update\_profile\>

### update\_profile\_background\_image(\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update\_profile\_background\_image\>

### update\_profile\_banner(\[ $banner, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update\_profile\_banner\>

### update\_profile\_image(\[ $image, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update\_profile\_image\>

### upload\_media(\[ $media, \]\[ \\%args \])

Aliases: upload

\<https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload\>

### direct\_messages\_events(\[ \\%args \])

\<https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/list-events.html\>

### show\_direct\_messages\_event(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-event\>

### destroy\_direct\_messages\_event(\[ $id, \]\[ \\%args \])

\<https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/delete-message-event\>

### new\_direct\_messages\_event(\[$text, $recipient\_id \] \| \[ \\%event \], \[ \\%args \])

For simple usage, pass text and recipient ID:

```
    $client->new_dirrect_messages_event($text, $recipient_id)
```

For more complex messages, pass a full event structure, for example:

```
    $client->new_direct_massages_event({
        type => 'message_create',
        message_create => {
            target => { recipient_id => $user_id },
            message_data => {
                text => $text,
                attachment => {
                    type  => 'media',
                    media => { id => $media->{id} },
                },
            },
        },
    })
```

\<https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-message\>

### invalidate\_access\_token(\[ \\%args \])

Calling this method has the same effect as a user revoking access to the application via Twitter settings. The access token/secret pair will no longer be valid.

This method can be called with client that has been initialized with `"access_token"` and `"access_token_secret"` attributes, by passing `"-token"` and `"-token_secret"` parameters, or by passing `"access_token"` and `"access_token_secret"` parameters.

```
    $client->invalidate_access_token;
    $client->invalidate_access_token({ -token => $token, -token_secret => $secret });
    $client->invalidate_access_token({
        access_token        => $token,
        access_token_secret => $secret,
    });
```

Twitter added this method to the API on 2018-09-20.

See \<https://developer.twitter.com/en/docs/basics/authentication/api-reference/invalidate\_access\_token\>

## AUTHOR

Marc Mims \<marc@questright.com\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2015-2021 by Marc Mims.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
