---
title: "Check Follow Relationship Batch"
method: GET
path: "/user/check_follow_relationship/batch"
tags: ["User Reads"]
---

# Check Follow Relationship Batch

`GET /user/check_follow_relationship/batch`

## Request

- Base URL: `https://api.twitterapis.com/twitter`
- URL: `https://api.twitterapis.com/twitter/user/check_follow_relationship/batch`
- Auth: HTTP bearer

Check the directional relationship between one fixed account and up to 100 others in one request: one source against up to 100 targets, or one target against up to 100 sources. Each item carries the same relationship object GET /user/check_follow_relationship returns, read from the source's side: whether the source follows the target (following) and the target follows the source (followed_by), plus block, mute, and DM-eligibility flags. Results come back in request order, each with its relationship object or an error code. Cost: $0.0008 per billed item.

## Query parameters

- `source_user_id` string: Numeric ID of the single source account, when the list is targets. Used as sent, with no lookup; wins over source_username when both are sent.
- `source_username` string: Handle of the single source account, when the list is targets. Resolved to its numeric ID first; an unknown handle returns a 404 and nothing is billed.
- `target_usernames` string: Comma-separated target handles, with or without the leading @, checked against the single source. Send this or target_user_ids, never both, and never together with a source list. Between 1 and 100 distinct entries after duplicates are removed (handles compare case-insensitively). A malformed handle returns a 400 for the whole request.
- `target_user_ids` string: Comma-separated numeric target IDs, as an alternative to target_usernames. Same 1 to 100 limit. Leading zeros are ignored for duplicates (012 and 12 are one account); results echo each ID as you sent it.
- `target_user_id` string: Numeric ID of the single target account, when the list is sources. Used as sent, with no lookup; wins over target_username when both are sent.
- `target_username` string: Handle of the single target account, when the list is sources. Resolved to its numeric ID first; an unknown handle returns a 404 and nothing is billed.
- `source_usernames` string: Comma-separated source handles, with or without the leading @, each checked against the single target. Send this or source_user_ids, never both, and never together with a target list. Between 1 and 100 distinct entries after duplicates are removed (handles compare case-insensitively). A malformed handle returns a 400 for the whole request.
- `source_user_ids` string: Comma-separated numeric source IDs, as an alternative to source_usernames. Same 1 to 100 limit. Leading zeros are ignored for duplicates (012 and 12 are one account); results echo each ID as you sent it.
- `fields` string
- `compact` '1'

## Response `200`

Check one account's follow relationship with up to 100 others in one request.

- object
  - `source_user_id` string: Numeric ID of the single source account. Present when the list is targets.
  - `target_user_id` string: Numeric ID of the single target account. Present when the list is sources.
  - `requested` integer: Number of distinct accounts in the list, after duplicates were removed.
  - `served` integer: Number of items that returned a relationship object.
  - `billed_items` integer: Number of pairs this call was billed for: every pair that came back with a relationship object (not_found is free). Multiply by $0.0008 for the charge.
  - `results` object[]: One entry per listed account, in request order.
    - `target_username` string: The target handle as you sent it, without the leading @. Present when the request used target_usernames.
    - `target_user_id` string: The target ID as you sent it. Present when the request used target_user_ids.
    - `source_username` string: The source handle as you sent it, without the leading @. Present when the request used source_usernames.
    - `source_user_id` string: The source ID as you sent it. Present when the request used source_user_ids.
    - `relationship` Relationship: The directional follow/block/mute relationship between a source and target account.
      - `source_id` string: Numeric ID of the source account.
      - `target_id` string: Numeric ID of the target account.
      - `following` boolean: True when the source account follows the target.
      - `followed_by` boolean: True when the target account follows the source.
      - `blocking` boolean, nullable: True when the source blocks the target; null when not available.
      - `blocked_by` boolean, nullable: True when the source is blocked by the target; null when not available.
      - `muting` boolean, nullable: True when the source mutes the target; null when not available.
      - `can_dm` boolean, nullable: True when the source can send a direct message to the target. Null when X does not say.
    - `error` string: Present only on an item without a relationship object. One of not_found (no relationship to report, because an account does not exist or a listed handle did not resolve; not billed), forbidden (X refuses this pair to every caller; not billed, retrying will not help), rate_limited or unavailable (failed on our side; not billed, safe to retry).

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `402`: Insufficient credits
- `404`: Not found
- `429`: Rate limited
- `503`: HTTP 503

---

[API](https://skmtc.dev/twitterapis/apis/twitterapis-api.md) · [All operations](https://skmtc.dev/twitterapis/apis/twitterapis-api/llms.txt) · [OpenAPI document](https://skmtc.dev/twitterapis/apis/twitterapis-api/revisions/a33ce0fedb3c?raw)
