XClient.Friendships (XClient v1.0.0)

Copy Markdown View Source

Friendships (follow/unfollow) operations for X API v1.1.

Rate Limits

  • POST friendships/create: 400 per 24 hours (user), 1000 per 24 hours (app)
  • GET friendships/show: 180 per 15 minutes (user), 15 per 15 minutes (app)
  • GET followers/ids: 15 per 15 minutes
  • GET followers/list: 15 per 15 minutes
  • GET friends/ids: 15 per 15 minutes
  • GET friends/list: 15 per 15 minutes

Summary

Functions

Returns a collection of user IDs for users following the specified user.

Returns a collection of user objects for users following the specified user.

Returns a collection of user IDs for users the specified user is following.

Returns a collection of user objects for users the specified user is following.

Returns detailed information about the relationship between two users.

Functions

create(opts \\ [], client \\ nil)

Follows a user.

Parameters

  • opts - Required parameters (one of):
    • :user_id - The ID of the user to follow
    • :screen_name - The screen name of the user to follow
  • Additional optional parameters:
    • :follow - Enable notifications for the target user

Examples

{:ok, user} = XClient.Friendships.create(screen_name: "elixirlang")
{:ok, user} = XClient.Friendships.create(user_id: "123456")

Rate Limit

400 requests per 24 hours (user), 1000 per 24 hours (app)

destroy(opts \\ [], client \\ nil)

Unfollows a user.

Parameters

  • opts - Required parameters (one of):
    • :user_id - The ID of the user to unfollow
    • :screen_name - The screen name of the user to unfollow

Examples

{:ok, user} = XClient.Friendships.destroy(screen_name: "example")
{:ok, user} = XClient.Friendships.destroy(user_id: "123456")

followers_ids(opts \\ [], client \\ nil)

Returns a collection of user IDs for users following the specified user.

Parameters

  • opts - Optional parameters
    • :user_id - The ID of the user
    • :screen_name - The screen name of the user
    • :cursor - Cursor for pagination (-1 for first page)
    • :count - Number of IDs to return per page (max 5000)
    • :stringify_ids - Return IDs as strings

Examples

{:ok, result} = XClient.Friendships.followers_ids(screen_name: "elixirlang")
{:ok, result} = XClient.Friendships.followers_ids(user_id: "123456", count: 5000)

Rate Limit

15 requests per 15 minutes

followers_list(opts \\ [], client \\ nil)

Returns a collection of user objects for users following the specified user.

Parameters

  • opts - Optional parameters
    • :user_id - The ID of the user
    • :screen_name - The screen name of the user
    • :cursor - Cursor for pagination (-1 for first page)
    • :count - Number of users to return per page (max 200)
    • :skip_status - Exclude status from user objects
    • :include_user_entities - Include user entities

Examples

{:ok, result} = XClient.Friendships.followers_list(screen_name: "elixirlang")

Rate Limit

15 requests per 15 minutes

friends_ids(opts \\ [], client \\ nil)

Returns a collection of user IDs for users the specified user is following.

Parameters

  • opts - Optional parameters
    • :user_id - The ID of the user
    • :screen_name - The screen name of the user
    • :cursor - Cursor for pagination (-1 for first page)
    • :count - Number of IDs to return per page (max 5000)
    • :stringify_ids - Return IDs as strings

Examples

{:ok, result} = XClient.Friendships.friends_ids(screen_name: "elixirlang")

Rate Limit

15 requests per 15 minutes

friends_list(opts \\ [], client \\ nil)

Returns a collection of user objects for users the specified user is following.

Parameters

  • opts - Optional parameters
    • :user_id - The ID of the user
    • :screen_name - The screen name of the user
    • :cursor - Cursor for pagination (-1 for first page)
    • :count - Number of users to return per page (max 200)
    • :skip_status - Exclude status from user objects
    • :include_user_entities - Include user entities

Examples

{:ok, result} = XClient.Friendships.friends_list(screen_name: "elixirlang")

Rate Limit

15 requests per 15 minutes

show(opts \\ [], client \\ nil)

Returns detailed information about the relationship between two users.

Parameters

  • opts - Required parameters:
    • Source user (one of):
      • :source_id - The user ID of the subject user
      • :source_screen_name - The screen name of the subject user
    • Target user (one of):
      • :target_id - The user ID of the target user
      • :target_screen_name - The screen name of the target user

Examples

{:ok, relationship} = XClient.Friendships.show(
  source_screen_name: "user1",
  target_screen_name: "user2"
)

Rate Limit

180 requests per 15 minutes (user), 15 per 15 minutes (app)