Zoeken wordt pas geladen wanneer je het gebruikt. Bekijk hieronder alle categorieën.

MCP-tool

Een Threads-profiel opzoeken

sosoapi_lookup_threads_profile

Een geschikt officieel openbaar profiel lezen als precies deze verbinding toestemming heeft. De volger- en standaardtoegangsbeperkingen van de aanbieder blijven gelden.

Lezen als Markdown

Profielen en transporten

Profielen: full · Transporten: stdio, http

Kies core of full om te bepalen welke tools je client ziet; dit verandert geen machtigingen. Lokale bestandsupload vereist stdio en is niet beschikbaar via HTTP. Stel SOSOAPI_OUTPUT_SCHEMAS=1 in om uitvoerschema's bij detectie op te nemen. Tools geven met en zonder die instelling gestructureerde resultaten terug.

Machtigingen en neveneffecten

Annotaties helpen clients een tool te beschrijven. Elke aanroep controleert nog steeds gebruikersauthenticatie, rol, resourcetoegang en verleende bevoegdheden.

{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}

Invoervelden

Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.

Invoervelden
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
social_account_idstringVerplicht in bovenliggend object
  • format: "uuid"
usernamestringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z0-9._]{1,30}$"
Volledig JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "username": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._]{1,30}$"
    }
  },
  "required": [
    "workspace_id",
    "social_account_id",
    "username"
  ],
  "additionalProperties": false
}

Gestructureerde uitvoer

Dit schema beschrijft structuredContent in een geslaagd toolresultaat. Het MCP-antwoord bevat ook content en kan isError instellen wanneer een aanroep mislukt. Lees bij publiceren het definitieve berichtresultaat; beschouw een geaccepteerd verzoek of tekstantwoord niet als bevestiging. De gekoppelde API-bewerking beschrijft machtigingen en regels voor opnieuw proberen.

Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.

Gestructureerde uitvoer
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
contract_versionstringVerplicht in bovenliggend object
  • const: "threads-reads/v1"
operationstringVerplicht in bovenliggend object
  • const: "profile_lookup"
sourcestringVerplicht in bovenliggend object
  • const: "official_threads_api"
workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
social_account_idstringVerplicht in bovenliggend object
  • format: "uuid"
provider_account_idstringVerplicht in bovenliggend object
  • pattern: "^\\d{2,20}$"
provider_app_identitystring | nullVerplicht in bovenliggend object—
provider_app_identityanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
provider_app_identityanyOf 2nullVerplicht in bovenliggend object—
oauth_snapshot_idstring | nullVerplicht in bovenliggend object—
oauth_snapshot_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
oauth_snapshot_idanyOf 2nullVerplicht in bovenliggend object—
fetched_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
statusstringVerplicht in bovenliggend object
  • enum: ["available","partial","unavailable"]
unavailable_reasonstring | nullVerplicht in bovenliggend object—
unavailable_reasonanyOf 1stringVerplicht in bovenliggend object
  • enum: ["grant_inventory_unknown","missing_permissions","issuing_app_unknown","credential_unavailable","credential_expired","account_unhealthy","provider_denied","provider_rate_limited","provider_unavailable","provider_response_invalid"]
unavailable_reasonanyOf 2nullVerplicht in bovenliggend object—
accessobjectVerplicht in bovenliggend object
  • additionalProperties: false
access.required_permissionsarrayVerplicht in bovenliggend object
  • maxItems: 4
access.required_permissions[]stringOptioneel / item
  • pattern: "^[a-z][a-z0-9_]{0,99}$"
access.missing_permissionsarrayVerplicht in bovenliggend object
  • maxItems: 4
access.missing_permissions[]stringOptioneel / item
  • pattern: "^[a-z][a-z0-9_]{0,99}$"
access.permission_statestringVerplicht in bovenliggend object
  • enum: ["granted","missing","unknown"]
access.grant_evidencestringVerplicht in bovenliggend object
  • enum: ["exact","unknown"]
access.app_accessstringVerplicht in bovenliggend object
  • const: "unverified"
dataarrayVerplicht in bovenliggend object
  • maxItems: 100
data[]objectOptioneel / item
  • additionalProperties: false
data[].idstringVerplicht in bovenliggend object
  • pattern: "^\\d{2,20}$"
data[].textstring | nullVerplicht in bovenliggend object—
data[].textanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 30000
data[].textanyOf 2nullVerplicht in bovenliggend object—
data[].usernamestring | nullVerplicht in bovenliggend object—
data[].usernameanyOf 1stringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z0-9._]{1,30}$"
data[].usernameanyOf 2nullVerplicht in bovenliggend object—
data[].permalinkstring | nullVerplicht in bovenliggend object—
data[].permalinkanyOf 1stringVerplicht in bovenliggend object
  • format: "uri"
data[].permalinkanyOf 2nullVerplicht in bovenliggend object—
data[].timestampstring | nullVerplicht in bovenliggend object—
data[].timestampanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
data[].timestampanyOf 2nullVerplicht in bovenliggend object—
data[].media_typestring | nullVerplicht in bovenliggend object—
data[].media_typeanyOf 1stringVerplicht in bovenliggend object
  • enum: ["TEXT","TEXT_POST","IMAGE","VIDEO","CAROUSEL_ALBUM","AUDIO","REPOST_FACADE"]
data[].media_typeanyOf 2nullVerplicht in bovenliggend object—
data[].is_replyboolean | nullVerplicht in bovenliggend object—
data[].is_quote_postboolean | nullVerplicht in bovenliggend object—
data[].has_repliesboolean | nullVerplicht in bovenliggend object—
data[].root_post_idstring | nullOptioneel / item—
data[].root_post_idanyOf 1stringOptioneel / item
  • pattern: "^\\d{2,20}$"
data[].root_post_idanyOf 2nullOptioneel / item—
data[].replied_to_idstring | nullOptioneel / item—
data[].replied_to_idanyOf 1stringOptioneel / item
  • pattern: "^\\d{2,20}$"
data[].replied_to_idanyOf 2nullOptioneel / item—
profileobject | nullVerplicht in bovenliggend object—
profileanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
profile.usernameanyOf 1stringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z0-9._]{1,30}$"
profile.nameanyOf 1string | nullVerplicht in bovenliggend object—
profile.nameanyOf 1 / anyOf 1stringVerplicht in bovenliggend object
  • maxLength: 200
profile.nameanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
profile.biographyanyOf 1string | nullVerplicht in bovenliggend object—
profile.biographyanyOf 1 / anyOf 1stringVerplicht in bovenliggend object
  • maxLength: 2000
profile.biographyanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
profile.is_verifiedanyOf 1boolean | nullVerplicht in bovenliggend object—
profile.follower_countanyOf 1integer | nullVerplicht in bovenliggend object—
profile.follower_countanyOf 1 / anyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 9007199254740991
profile.follower_countanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
profileanyOf 2nullVerplicht in bovenliggend object—
locationsarrayOptioneel / item
  • maxItems: 100
locations[]objectOptioneel / item
  • additionalProperties: false
locations[].idstringVerplicht in bovenliggend object
  • pattern: "^\\d{2,20}$"
locations[].namestring | nullVerplicht in bovenliggend object—
locations[].nameanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 200
locations[].nameanyOf 2nullVerplicht in bovenliggend object—
locations[].addressstring | nullVerplicht in bovenliggend object—
locations[].addressanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 500
locations[].addressanyOf 2nullVerplicht in bovenliggend object—
locations[].citystring | nullVerplicht in bovenliggend object—
locations[].cityanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 200
locations[].cityanyOf 2nullVerplicht in bovenliggend object—
locations[].countrystring | nullVerplicht in bovenliggend object—
locations[].countryanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 200
locations[].countryanyOf 2nullVerplicht in bovenliggend object—
locations[].postal_codestring | nullVerplicht in bovenliggend object—
locations[].postal_codeanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
locations[].postal_codeanyOf 2nullVerplicht in bovenliggend object—
root_post_idstringOptioneel / item
  • pattern: "^\\d{2,20}$"
target_usernamestringOptioneel / item
  • pattern: "^[A-Za-z0-9._]{1,30}$"
coverageobjectVerplicht in bovenliggend object
  • additionalProperties: false
coverage.completebooleanVerplicht in bovenliggend object
  • const: false
coverage.next_cursorstring | nullVerplicht in bovenliggend object—
coverage.next_cursoranyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 4096
coverage.next_cursoranyOf 2nullVerplicht in bovenliggend object—
coverage.omitted_rowsintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 9007199254740991
coverage.reasonsarrayVerplicht in bovenliggend object
  • maxItems: 8
coverage.reasons[]stringOptioneel / item
  • maxLength: 400
quotaarrayVerplicht in bovenliggend object
  • maxItems: 1
quota[]objectOptioneel / item
  • additionalProperties: false
quota[].providerstringVerplicht in bovenliggend object
  • const: "meta"
quota[].usageobjectVerplicht in bovenliggend object
  • additionalProperties: false
quota[].usage.call_countnumberOptioneel / item—
quota[].usage.total_cputimenumberOptioneel / item—
quota[].usage.total_timenumberOptioneel / item—
quota[].usage.estimated_time_to_regain_accessnumberOptioneel / item—
quota[].sourcesarrayVerplicht in bovenliggend object
  • maxItems: 2
quota[].sources[]stringOptioneel / item
  • enum: ["x-app-usage","x-business-use-case-usage"]
Volledig JSON Schema
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "threads-reads/v1"
    },
    "operation": {
      "type": "string",
      "const": "profile_lookup"
    },
    "source": {
      "type": "string",
      "const": "official_threads_api"
    },
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "provider_account_id": {
      "type": "string",
      "pattern": "^\\d{2,20}$"
    },
    "provider_app_identity": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        {
          "type": "null"
        }
      ]
    },
    "oauth_snapshot_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    },
    "fetched_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "status": {
      "type": "string",
      "enum": [
        "available",
        "partial",
        "unavailable"
      ]
    },
    "unavailable_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "grant_inventory_unknown",
            "missing_permissions",
            "issuing_app_unknown",
            "credential_unavailable",
            "credential_expired",
            "account_unhealthy",
            "provider_denied",
            "provider_rate_limited",
            "provider_unavailable",
            "provider_response_invalid"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "access": {
      "type": "object",
      "properties": {
        "required_permissions": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_]{0,99}$"
          }
        },
        "missing_permissions": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_]{0,99}$"
          }
        },
        "permission_state": {
          "type": "string",
          "enum": [
            "granted",
            "missing",
            "unknown"
          ]
        },
        "grant_evidence": {
          "type": "string",
          "enum": [
            "exact",
            "unknown"
          ]
        },
        "app_access": {
          "type": "string",
          "const": "unverified"
        }
      },
      "required": [
        "required_permissions",
        "missing_permissions",
        "permission_state",
        "grant_evidence",
        "app_access"
      ],
      "additionalProperties": false
    },
    "data": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^\\d{2,20}$"
          },
          "text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 30000
              },
              {
                "type": "null"
              }
            ]
          },
          "username": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9._]{1,30}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "permalink": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "timestamp": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "media_type": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "TEXT",
                  "TEXT_POST",
                  "IMAGE",
                  "VIDEO",
                  "CAROUSEL_ALBUM",
                  "AUDIO",
                  "REPOST_FACADE"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "is_reply": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_quote_post": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "has_replies": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "root_post_id": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{2,20}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "replied_to_id": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{2,20}$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "text",
          "username",
          "permalink",
          "timestamp",
          "media_type",
          "is_reply",
          "is_quote_post",
          "has_replies"
        ],
        "additionalProperties": false
      }
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "username": {
              "type": "string",
              "pattern": "^[A-Za-z0-9._]{1,30}$"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 200
                },
                {
                  "type": "null"
                }
              ]
            },
            "biography": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 2000
                },
                {
                  "type": "null"
                }
              ]
            },
            "is_verified": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "follower_count": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "username",
            "name",
            "biography",
            "is_verified",
            "follower_count"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "locations": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^\\d{2,20}$"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "city": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "address",
          "city",
          "country",
          "postal_code"
        ],
        "additionalProperties": false
      }
    },
    "root_post_id": {
      "type": "string",
      "pattern": "^\\d{2,20}$"
    },
    "target_username": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._]{1,30}$"
    },
    "coverage": {
      "type": "object",
      "properties": {
        "complete": {
          "type": "boolean",
          "const": false
        },
        "next_cursor": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096
            },
            {
              "type": "null"
            }
          ]
        },
        "omitted_rows": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "reasons": {
          "maxItems": 8,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 400
          }
        }
      },
      "required": [
        "complete",
        "next_cursor",
        "omitted_rows",
        "reasons"
      ],
      "additionalProperties": false
    },
    "quota": {
      "maxItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "const": "meta"
          },
          "usage": {
            "type": "object",
            "properties": {
              "call_count": {
                "type": "number"
              },
              "total_cputime": {
                "type": "number"
              },
              "total_time": {
                "type": "number"
              },
              "estimated_time_to_regain_access": {
                "type": "number"
              }
            },
            "additionalProperties": false
          },
          "sources": {
            "maxItems": 2,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "x-app-usage",
                "x-business-use-case-usage"
              ]
            }
          }
        },
        "required": [
          "provider",
          "usage",
          "sources"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "contract_version",
    "operation",
    "source",
    "workspace_id",
    "social_account_id",
    "provider_account_id",
    "provider_app_identity",
    "oauth_snapshot_id",
    "fetched_at",
    "status",
    "unavailable_reason",
    "access",
    "data",
    "profile",
    "coverage",
    "quota"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Voorbeeld van een toolaanroep

Deze voorbeelden gebruiken fictieve waarden die tegen de schema's zijn gecontroleerd. Vervang IDs door toegestane IDs, media door gereedstaande bestanden en datums door je bevestigde publicatietijd. Controleer accountgeschiktheid vóór een schrijfhandeling. Deze pagina verstuurt geen API-verzoeken.

{
  "name": "sosoapi_lookup_threads_profile",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": "22222222-2222-4222-8222-222222222222",
    "username": "fictional_example"
  }
}

structuredContent

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "social_account_id": "22222222-2222-4222-8222-222222222222",
  "contract_version": "threads-reads/v1",
  "operation": "profile_lookup",
  "source": "official_threads_api",
  "provider_account_id": "12345",
  "provider_app_identity": null,
  "oauth_snapshot_id": null,
  "fetched_at": "2099-01-15T09:00:00Z",
  "status": "unavailable",
  "unavailable_reason": "issuing_app_unknown",
  "access": {
    "required_permissions": [
      "threads_basic",
      "threads_profile_discovery"
    ],
    "missing_permissions": [],
    "permission_state": "unknown",
    "grant_evidence": "unknown",
    "app_access": "unverified"
  },
  "data": [],
  "profile": null,
  "quota": [],
  "coverage": {
    "complete": false,
    "next_cursor": null,
    "omitted_rows": 0,
    "reasons": [
      "Fictional documentation example: no provider request was made and no account data was read.",
      "App access and any pending permission review remain unverified; this is not successful provider or public-access evidence."
    ]
  }
}
Installeer of verbind MCP