Integritetsinställningar

Nödvändiga funktioner

Krävs för säkerhet och webbplatsens grundfunktioner.

Alltid aktiva

Landing-diagnostik och maskerad inspelning

Mäter offentliga besök, avhopp och interaktioner med registreringslänkar med ett anonymt ID som bara gäller i denna flik, utan kontokoppling. All text maskeras och formulär blockeras.

Valfri användningsanalys

Tillåta användningsanalys med PostHog? Ändra ditt val när som helst i sidfoten.

Tillåt även sessionsinspelning på den här offentliga webbplatsen

Inspelning i det valfria läget mellan webbplatser visar offentliga sidor och interaktioner, med inmatningar och privat innehåll maskerade. Inspelning i appen är ett separat val.

Kräver valfri analys; inspelning i detta läge mellan webbplatser är avstängd som standard. Landing-läget ovan körs separat.

Webbläsaranalys aktiverar inte kontoanalys.

Sökningen laddas först när du använder den. Bläddra bland alla kategorier nedan.

Forskning och underlag med källhänvisningar

Läs en offentlig forskningskälla från sociala medier

Hämta ett begränsat urval offentliga belägg från sociala medier via URL och mutation_id; texten är inte betrodd och täckningen är partiell. Kräver agent:research.

POST /research-api/evidence/retrieve-social

Kontrakt granskat: · sha256:dadbfeb34d10743d

Översikt

Hämta ett begränsat urval offentliga belägg från sociala medier via URL och mutation_id; texten är inte betrodd och täckningen är partiell. Kräver agent:research.

Ett lyckat HTTP-svar kan betyda att en begäran accepterats snarare än slutförts. Spara returnerat ID för bakgrundsarbete och kontrollera samma åtgärd tills den är klar. Ett schemalagt eller accepterat inlägg är publicerat först när plattformen bekräftar det; en klienttimeout fastställer inte resultatet.

Autentisering och behörigheter

Godtagna typer av autentiseringsuppgifter
user_session, delegated_oauth, personal_access_token
Delegerad funktion
agent:research
Lägsta arbetsyteroll
editor
Åtkomstomfång
Resurser som denna användare har behörighet att komma åt
Samtycke för alla arbetsytor krävs
Nej
Ändrar tillstånd
Ja
När åtgärden är klar
durable bounded social receipt and exact evidence references; partial samples and unknown counters stay explicit

En token får endast använda ägarens rättigheter. Varje anrop kontrollerar arbetsytemedlemskap, resursägarskap, valda arbetsytor och beviljade funktioner. Profilerna core och full ändrar vilka verktyg som visas; de ger ingen åtkomst.

Anropsfält

Obligatoriskt betyder obligatoriskt inom sitt överordnade objekt och vald gren. Ett obligatoriskt underfält gör inte ett valfritt överordnat objekt obligatoriskt. Regler och fältnamn nedan kopieras från kontraktet.

Anropsfält
Fält / grenTyp / obligatorisktBegränsningar
$objectObligatoriskt i överordnat objekt
  • additionalProperties: false
workspace_idstringObligatoriskt i överordnat objekt
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
mutation_idstringObligatoriskt i överordnat objekt
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
urlstringObligatoriskt i överordnat objekt
  • format: "uri"
  • maxLength: 2048
Fullständigt JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "mutation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "url": {
      "type": "string",
      "maxLength": 2048,
      "format": "uri"
    }
  },
  "required": [
    "workspace_id",
    "mutation_id",
    "url"
  ],
  "additionalProperties": false
}

Svar och slutförande

HTTP-status vid framgång: 200. När åtgärden är klar: durable bounded social receipt and exact evidence references; partial samples and unknown counters stay explicit.

Ett lyckat HTTP-svar kan betyda att en begäran accepterats snarare än slutförts. Spara returnerat ID för bakgrundsarbete och kontrollera samma åtgärd tills den är klar. Ett schemalagt eller accepterat inlägg är publicerat först när plattformen bekräftar det; en klienttimeout fastställer inte resultatet.

Obligatoriskt betyder obligatoriskt inom sitt överordnade objekt och vald gren. Ett obligatoriskt underfält gör inte ett valfritt överordnat objekt obligatoriskt. Regler och fältnamn nedan kopieras från kontraktet.

Svar och slutförande
Fält / grenTyp / obligatorisktBegränsningar
$objectObligatoriskt i överordnat objekt—
retrievalobjectObligatoriskt i överordnat objekt—
retrieval.idstringObligatoriskt i överordnat objekt
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
retrieval.workspace_idstringObligatoriskt i överordnat objekt
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
retrieval.mutation_idstringObligatoriskt i överordnat objekt
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
retrieval.kindstringObligatoriskt i överordnat objekt
  • const: "public_social"
retrieval.statestringObligatoriskt i överordnat objekt
  • enum: ["pending","running","completed","cancelled","unconfirmed","expired"]
retrieval.created_atstringObligatoriskt i överordnat objekt
  • 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)))$"
retrieval.settled_atstring | nullObligatoriskt i överordnat objekt—
retrieval.settled_atanyOf 1stringObligatoriskt i överordnat objekt
  • 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)))$"
retrieval.settled_atanyOf 2nullObligatoriskt i överordnat objekt—
retrieval.valid_untilstringObligatoriskt i överordnat objekt
  • 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)))$"
retrieval.resultobject | nullObligatoriskt i överordnat objekt—
retrieval.resultanyOf 1objectObligatoriskt i överordnat objekt—
retrieval.result.sourceanyOf 1stringObligatoriskt i överordnat objekt
  • enum: ["facebook_public_web","instagram_public_web","threads_public_web"]
retrieval.result.platformanyOf 1stringObligatoriskt i överordnat objekt
  • enum: ["facebook","instagram","threads"]
retrieval.result.canonical_urlanyOf 1stringObligatoriskt i överordnat objekt
  • format: "uri"
  • maxLength: 2048
retrieval.result.fetched_atanyOf 1stringObligatoriskt i överordnat objekt
  • 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)))$"
retrieval.result.expires_atanyOf 1stringObligatoriskt i överordnat objekt
  • 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)))$"
retrieval.result.upstream_updated_atanyOf 1nullObligatoriskt i överordnat objekt—
retrieval.result.statusanyOf 1stringObligatoriskt i överordnat objekt
  • enum: ["available","partial","unavailable"]
retrieval.result.profileanyOf 1object | nullObligatoriskt i överordnat objekt—
retrieval.result.profileanyOf 1 / anyOf 1objectObligatoriskt i överordnat objekt—
retrieval.result.profile.source_account_idanyOf 1 / anyOf 1stringObligatoriskt i överordnat objekt
  • pattern: "^[0-9]{1,30}$"
retrieval.result.profile.id_namespaceanyOf 1 / anyOf 1stringObligatoriskt i överordnat objekt
  • const: "public_web"
retrieval.result.profile.usernameanyOf 1 / anyOf 1stringObligatoriskt i överordnat objekt
  • minLength: 1
  • maxLength: 50
retrieval.result.profile.nameanyOf 1 / anyOf 1string | nullObligatoriskt i överordnat objekt—
retrieval.result.profile.nameanyOf 1 / anyOf 1 / anyOf 1stringObligatoriskt i överordnat objekt
  • minLength: 1
  • maxLength: 200
retrieval.result.profile.nameanyOf 1 / anyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.profile.followersanyOf 1 / anyOf 1integer | nullObligatoriskt i överordnat objekt—
retrieval.result.profile.followersanyOf 1 / anyOf 1 / anyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.profile.followersanyOf 1 / anyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.profileanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.postsanyOf 1arrayObligatoriskt i överordnat objekt
  • maxItems: 20
retrieval.result.posts[]anyOf 1objectValfritt / objekt—
retrieval.result.posts[].source_post_idanyOf 1stringObligatoriskt i överordnat objekt
  • pattern: "^[0-9]{1,30}$"
retrieval.result.posts[].id_namespaceanyOf 1stringObligatoriskt i överordnat objekt
  • const: "public_web"
retrieval.result.posts[].shortcodeanyOf 1string | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].shortcodeanyOf 1 / anyOf 1stringObligatoriskt i överordnat objekt
  • minLength: 1
  • maxLength: 64
retrieval.result.posts[].shortcodeanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].source_account_idanyOf 1stringObligatoriskt i överordnat objekt
  • pattern: "^[0-9]{1,30}$"
retrieval.result.posts[].authoranyOf 1stringObligatoriskt i överordnat objekt
  • minLength: 1
  • maxLength: 50
retrieval.result.posts[].canonical_urlanyOf 1stringObligatoriskt i överordnat objekt
  • format: "uri"
  • maxLength: 2048
retrieval.result.posts[].textanyOf 1stringObligatoriskt i överordnat objekt
  • maxLength: 30000
retrieval.result.posts[].published_atanyOf 1string | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].published_atanyOf 1 / anyOf 1stringObligatoriskt i överordnat objekt
  • 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)))$"
retrieval.result.posts[].published_atanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].media_kindanyOf 1stringObligatoriskt i överordnat objekt
  • enum: ["text","image","video","carousel","unknown"]
retrieval.result.posts[].metricsanyOf 1objectObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.likesanyOf 1integer | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.likesanyOf 1 / anyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.posts[].metrics.likesanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.commentsanyOf 1integer | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.commentsanyOf 1 / anyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.posts[].metrics.commentsanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.reactionsanyOf 1integer | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.reactionsanyOf 1 / anyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.posts[].metrics.reactionsanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.sharesanyOf 1integer | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.sharesanyOf 1 / anyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.posts[].metrics.sharesanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.viewsanyOf 1integer | nullObligatoriskt i överordnat objekt—
retrieval.result.posts[].metrics.viewsanyOf 1 / anyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.posts[].metrics.viewsanyOf 1 / anyOf 2nullObligatoriskt i överordnat objekt—
retrieval.result.coverageanyOf 1objectObligatoriskt i överordnat objekt—
retrieval.result.coverage.completeanyOf 1booleanObligatoriskt i överordnat objekt
  • const: false
retrieval.result.coverage.reasonsanyOf 1arrayObligatoriskt i överordnat objekt
  • maxItems: 20
retrieval.result.coverage.reasons[]anyOf 1stringValfritt / objekt
  • enum: ["initial_page_only","public_web_ids","metrics_unavailable","profile_only","no_attributable_posts","foreign_or_malformed_rows","parser_limit","unsupported_payload","blocked","rate_limited","upstream_http_error","redirect_rejected","unsupported_content_type","response_too_large","timeout","aborted","network_error","inconsistent_identity","research_limit","source_removed"]
retrieval.result.coverage.omitted_rowsanyOf 1integerObligatoriskt i överordnat objekt
  • minimum: 0
  • maximum: 9007199254740991
retrieval.result.coverage.next_cursoranyOf 1nullObligatoriskt i överordnat objekt—
retrieval.resultanyOf 2nullObligatoriskt i överordnat objekt—
retrieval.evidencearrayObligatoriskt i överordnat objekt
  • maxItems: 20
retrieval.evidence[]objectValfritt / objekt—
retrieval.evidence[].evidence_idstringObligatoriskt i överordnat objekt
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
retrieval.evidence[].revisionintegerObligatoriskt i överordnat objekt
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
Fullständigt JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "retrieval": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "mutation_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "kind": {
          "type": "string",
          "const": "public_social"
        },
        "state": {
          "type": "string",
          "enum": [
            "pending",
            "running",
            "completed",
            "cancelled",
            "unconfirmed",
            "expired"
          ]
        },
        "created_at": {
          "type": "string",
          "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)))$",
          "format": "date-time"
        },
        "settled_at": {
          "anyOf": [
            {
              "type": "string",
              "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)))$",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "valid_until": {
          "type": "string",
          "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)))$",
          "format": "date-time"
        },
        "result": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "source": {
                  "type": "string",
                  "enum": [
                    "facebook_public_web",
                    "instagram_public_web",
                    "threads_public_web"
                  ]
                },
                "platform": {
                  "type": "string",
                  "enum": [
                    "facebook",
                    "instagram",
                    "threads"
                  ]
                },
                "canonical_url": {
                  "type": "string",
                  "maxLength": 2048,
                  "format": "uri"
                },
                "fetched_at": {
                  "type": "string",
                  "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)))$",
                  "format": "date-time"
                },
                "expires_at": {
                  "type": "string",
                  "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)))$",
                  "format": "date-time"
                },
                "upstream_updated_at": {
                  "type": "null"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "available",
                    "partial",
                    "unavailable"
                  ]
                },
                "profile": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "source_account_id": {
                          "type": "string",
                          "pattern": "^[0-9]{1,30}$"
                        },
                        "id_namespace": {
                          "type": "string",
                          "const": "public_web"
                        },
                        "username": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 50
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "followers": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "source_account_id",
                        "id_namespace",
                        "username",
                        "name",
                        "followers"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "posts": {
                  "maxItems": 20,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "source_post_id": {
                        "type": "string",
                        "pattern": "^[0-9]{1,30}$"
                      },
                      "id_namespace": {
                        "type": "string",
                        "const": "public_web"
                      },
                      "shortcode": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "source_account_id": {
                        "type": "string",
                        "pattern": "^[0-9]{1,30}$"
                      },
                      "author": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50
                      },
                      "canonical_url": {
                        "type": "string",
                        "maxLength": 2048,
                        "format": "uri"
                      },
                      "text": {
                        "type": "string",
                        "maxLength": 30000
                      },
                      "published_at": {
                        "anyOf": [
                          {
                            "type": "string",
                            "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)))$",
                            "format": "date-time"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "media_kind": {
                        "type": "string",
                        "enum": [
                          "text",
                          "image",
                          "video",
                          "carousel",
                          "unknown"
                        ]
                      },
                      "metrics": {
                        "type": "object",
                        "properties": {
                          "likes": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "comments": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "reactions": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "shares": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "views": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "likes",
                          "comments",
                          "reactions",
                          "shares",
                          "views"
                        ]
                      }
                    },
                    "required": [
                      "source_post_id",
                      "id_namespace",
                      "shortcode",
                      "source_account_id",
                      "author",
                      "canonical_url",
                      "text",
                      "published_at",
                      "media_kind",
                      "metrics"
                    ]
                  }
                },
                "coverage": {
                  "type": "object",
                  "properties": {
                    "complete": {
                      "type": "boolean",
                      "const": false
                    },
                    "reasons": {
                      "maxItems": 20,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "initial_page_only",
                          "public_web_ids",
                          "metrics_unavailable",
                          "profile_only",
                          "no_attributable_posts",
                          "foreign_or_malformed_rows",
                          "parser_limit",
                          "unsupported_payload",
                          "blocked",
                          "rate_limited",
                          "upstream_http_error",
                          "redirect_rejected",
                          "unsupported_content_type",
                          "response_too_large",
                          "timeout",
                          "aborted",
                          "network_error",
                          "inconsistent_identity",
                          "research_limit",
                          "source_removed"
                        ]
                      }
                    },
                    "omitted_rows": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "next_cursor": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "complete",
                    "reasons",
                    "omitted_rows",
                    "next_cursor"
                  ]
                }
              },
              "required": [
                "source",
                "platform",
                "canonical_url",
                "fetched_at",
                "expires_at",
                "upstream_updated_at",
                "status",
                "profile",
                "posts",
                "coverage"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "evidence": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "evidence_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "evidence_id",
              "revision"
            ]
          }
        }
      },
      "required": [
        "id",
        "workspace_id",
        "mutation_id",
        "kind",
        "state",
        "created_at",
        "settled_at",
        "valid_until",
        "result",
        "evidence"
      ]
    }
  },
  "required": [
    "retrieval"
  ]
}

Fel och säkra nya försök

Kontrollera HTTP-status och svarskropp. Ett valideringsfel med 400 kan innehålla ZodError; hanterarfel använder fälten error, message och code. Spara request_id eller x-request-id för felsökning, utan inloggningsuppgifter. Åtgärda åtkomstfel med 401/403 innan du försöker igen och följ Retry-After vid 429. Om en skrivning är osäker eller returnerar 5xx, läs först det befintliga resultatet. Återanvänd en idempotensnyckel endast där det stöds; försöksbeteendet varierar mellan åtgärder och garanterar inte leverans exakt en gång.

Felsökningsguide

Exempel

Exemplen använder fiktiva värden som kontrollerats mot schemana. Ersätt ID:n med sådana du får använda, medier med färdiga mediefiler och datum med din bekräftade publiceringstid. Kontrollera kontots behörighet före en skrivning. Denna sida skickar inga API-anrop.

Sätt SOSOAPI_ACCESS_TOKEN på servern till en autentiseringsuppgift som åtgärden godtar och håll den borta från webbläsarkod. För en AI-agent använder du sosoapi auth login för att logga in via webbläsaren och låter CLI förnya sina uppgifter.

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "mutation_id": "40000000-0000-4000-8000-000000000005",
  "url": "https://www.instagram.com/fictional_example/"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/evidence/retrieve-social" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/evidence/retrieve-social", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "mutation_id": "40000000-0000-4000-8000-000000000005",
  "url": "https://www.instagram.com/fictional_example/"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

# This operation requires a CLI build containing the updated Research contract.
# Use HTTP or hosted MCP if your CLI build does not include it.
# 此操作需要包含更新版 Research contract 的 CLI build。
# 如 CLI build 未包含此 contract,請使用 HTTP 或 hosted MCP。
npx sosoapi api post /research-api/evidence/retrieve-social < request.json

Syntetiskt svarsexempel

{
  "retrieval": {
    "id": "30000000-0000-4000-8000-000000000007",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "mutation_id": "40000000-0000-4000-8000-000000000005",
    "kind": "public_social",
    "state": "completed",
    "created_at": "2099-01-15T09:00:00Z",
    "settled_at": "2099-01-15T09:00:01Z",
    "valid_until": "2099-01-16T09:00:00Z",
    "evidence": [],
    "result": {
      "source": "instagram_public_web",
      "platform": "instagram",
      "canonical_url": "https://www.instagram.com/fictional_example/",
      "fetched_at": "2099-01-15T09:00:00Z",
      "expires_at": "2099-01-16T09:00:00Z",
      "upstream_updated_at": null,
      "status": "unavailable",
      "profile": null,
      "posts": [],
      "coverage": {
        "complete": false,
        "reasons": [
          "blocked"
        ],
        "omitted_rows": 0,
        "next_cursor": null
      }
    }
  }
}

MCP: sosoapi_research_evidence_retrieve-social