העדפות פרטיות

תכונות חיוניות

נדרשות לאבטחה ולפעולות הבסיסיות של האתר.

פעילות תמיד

ניתוח שימוש אופציונלי

לאפשר ניתוח שימוש באמצעות PostHog? אפשר לשנות את הבחירה בכל עת בתחתית האתר.

לאפשר גם הקלטת הפעלות באתר הציבורי הזה

הקלטת ההפעלות מציגה עמודים ציבוריים ואינטראקציות, תוך הסתרת שדות קלט ותוכן פרטי. הקלטת הפעלות באפליקציה היא בחירה נפרדת.

נדרש ניתוח שימוש; שחזור האתר כבוי כברירת מחדל.

ניתוח השימוש בדפדפן אינו מפעיל ניתוח שימוש בחשבון.

החיפוש נטען רק כשמשתמשים בו. עיינו בכל הקטגוריות שלהלן.

מחקר ותמציות עם אסמכתאות

קריאת סקירת קורפוס מחקר נבחר

קריאת ספירות דטרמיניסטיות לקורפוס חתום מדויק; פריטים שנבחרו אינם גודל קהל או שוק. נדרשת agent:research.

POST /research-api/projects/overview

החוזה נבדק: · sha256:ab393e91e9b7f18a

סקירה

קריאת ספירות דטרמיניסטיות לקורפוס חתום מדויק; פריטים שנבחרו אינם גודל קהל או שוק. נדרשת agent:research.

תגובת HTTP מוצלחת עשויה לציין שבקשה התקבלה, ולא שהושלמה. בעבודת רקע, שמרו את המזהה שהוחזר ובדקו את אותה פעולה עד שתסתיים. פוסט שתוזמן או התקבל נחשב שפורסם רק כשהפלטפורמה מאשרת זאת; חריגה מזמן ההמתנה אצל הלקוח אינה קובעת מה התוצאה.

אימות והרשאות

סוגי אמצעי גישה מתקבלים
user_session, delegated_oauth, personal_access_token
יכולת מואצלת
agent:research
תפקיד מינימלי בסביבת העבודה
viewer
היקף הגישה
משאבים שהמשתמש הזה מורשה לגשת אליהם
נדרשת הסכמה לכל סביבות העבודה
לא
משנה מצב
לא
מתי הפעולה הושלמה
currently authorized exact Research resource data

אסימון יכול להשתמש רק בזכויות שיש לבעליו. כל בקשה בודקת חברות בסביבת העבודה, בעלות על משאבים, סביבות עבודה נבחרות ויכולות שהוענקו. הפרופילים core ו-full משנים אילו כלים מוצגים; הם אינם מעניקים גישה.

שדות הבקשה

שדה חובה נדרש בתוך אובייקט האב והענף הנבחר שלו. צאצא נדרש אינו הופך אב אופציונלי לנדרש. הכללים ושמות השדות שלהלן מועתקים מהחוזה.

שדות הבקשה
שדה / ענףסוג / חובהאילוצים
$objectחובה באובייקט האב
  • additionalProperties: false
workspace_idstringחובה באובייקט האב
  • 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)$"
project_idstringחובה באובייקט האב
  • 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)$"
project_revisionintegerחובה באובייקט האב
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
corpus_snapshot_idstringחובה באובייקט האב
  • 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)$"
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)$"
    },
    "project_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)$"
    },
    "project_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "corpus_snapshot_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)$"
    }
  },
  "required": [
    "workspace_id",
    "project_id",
    "project_revision",
    "corpus_snapshot_id"
  ],
  "additionalProperties": false
}

תגובה והשלמה

סטטוסי HTTP להצלחה: 200. מתי הפעולה הושלמה: currently authorized exact Research resource data.

תגובת HTTP מוצלחת עשויה לציין שבקשה התקבלה, ולא שהושלמה. בעבודת רקע, שמרו את המזהה שהוחזר ובדקו את אותה פעולה עד שתסתיים. פוסט שתוזמן או התקבל נחשב שפורסם רק כשהפלטפורמה מאשרת זאת; חריגה מזמן ההמתנה אצל הלקוח אינה קובעת מה התוצאה.

שדה חובה נדרש בתוך אובייקט האב והענף הנבחר שלו. צאצא נדרש אינו הופך אב אופציונלי לנדרש. הכללים ושמות השדות שלהלן מועתקים מהחוזה.

תגובה והשלמה
שדה / ענףסוג / חובהאילוצים
$objectחובה באובייקט האב—
project_idstringחובה באובייקט האב
  • 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)$"
project_revisionintegerחובה באובייקט האב
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
corpus_snapshot_idstringחובה באובייקט האב
  • 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)$"
method_versionstringחובה באובייקט האב
  • const: "literal-mentions/v1"
coveragestringחובה באובייקט האב
  • enum: ["supplied_set","bounded_sample","partial"]
evidence_countintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
unique_itemsintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
brand_union_countintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
overlap_countintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
brandsarrayחובה באובייקט האב
  • maxItems: 20
brands[]objectרשות / פריט—
brands[].idstringחובה באובייקט האב
  • 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)$"
brands[].namestringחובה באובייקט האב
  • minLength: 1
  • maxLength: 100
brands[].matched_itemsintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
brands[].observed_mention_sharenumber | nullחובה באובייקט האב—
brands[].observed_mention_shareanyOf 1numberחובה באובייקט האב
  • minimum: 0
  • maximum: 1
brands[].observed_mention_shareanyOf 2nullחובה באובייקט האב—
brands[].evidencearrayחובה באובייקט האב
  • maxItems: 500
brands[].evidence[]objectרשות / פריט—
brands[].evidence[].evidence_idstringחובה באובייקט האב
  • 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)$"
brands[].evidence[].revisionintegerחובה באובייקט האב
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
languagesarrayחובה באובייקט האב
  • maxItems: 501
languages[]objectרשות / פריט—
languages[].languagestring | nullחובה באובייקט האב—
languages[].languageanyOf 1stringחובה באובייקט האב
  • minLength: 1
  • maxLength: 35
languages[].languageanyOf 2nullחובה באובייקט האב—
languages[].item_countintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
platformsarrayחובה באובייקט האב
  • maxItems: 8
platforms[]objectרשות / פריט—
platforms[].platformstring | nullחובה באובייקט האב—
platforms[].platformanyOf 1stringחובה באובייקט האב
  • enum: ["threads","instagram","facebook","youtube","x","reddit","web"]
platforms[].platformanyOf 2nullחובה באובייקט האב—
platforms[].item_countintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
sourcesarrayחובה באובייקט האב
  • maxItems: 3
sources[]objectרשות / פריט—
sources[].categorystringחובה באובייקט האב
  • enum: ["your_accounts","public_posts","team_notes"]
sources[].item_countintegerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
historyobjectחובה באובייקט האב—
history.eligiblebooleanחובה באובייקט האב
  • const: false
history.reasonstringחובה באובייקט האב
  • const: "insufficient_comparable_history"
JSON Schema מלא
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "project_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)$"
    },
    "project_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "corpus_snapshot_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)$"
    },
    "method_version": {
      "type": "string",
      "const": "literal-mentions/v1"
    },
    "coverage": {
      "type": "string",
      "enum": [
        "supplied_set",
        "bounded_sample",
        "partial"
      ]
    },
    "evidence_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "unique_items": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "brand_union_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "overlap_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "brands": {
      "maxItems": 20,
      "type": "array",
      "items": {
        "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)$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "matched_items": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "observed_mention_share": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence": {
            "maxItems": 500,
            "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",
          "name",
          "matched_items",
          "observed_mention_share",
          "evidence"
        ]
      }
    },
    "languages": {
      "maxItems": 501,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "language": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 35
              },
              {
                "type": "null"
              }
            ]
          },
          "item_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "language",
          "item_count"
        ]
      }
    },
    "platforms": {
      "maxItems": 8,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "platform": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "threads",
                  "instagram",
                  "facebook",
                  "youtube",
                  "x",
                  "reddit",
                  "web"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "item_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "platform",
          "item_count"
        ]
      }
    },
    "sources": {
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "your_accounts",
              "public_posts",
              "team_notes"
            ]
          },
          "item_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "category",
          "item_count"
        ]
      }
    },
    "history": {
      "type": "object",
      "properties": {
        "eligible": {
          "type": "boolean",
          "const": false
        },
        "reason": {
          "type": "string",
          "const": "insufficient_comparable_history"
        }
      },
      "required": [
        "eligible",
        "reason"
      ]
    }
  },
  "required": [
    "project_id",
    "project_revision",
    "corpus_snapshot_id",
    "method_version",
    "coverage",
    "evidence_count",
    "unique_items",
    "brand_union_count",
    "overlap_count",
    "brands",
    "languages",
    "platforms",
    "sources",
    "history"
  ]
}

שגיאות וניסיונות חוזרים בטוחים

בדקו את סטטוס ה-HTTP ואת גוף התגובה. שגיאת אימות 400 עשויה להכיל ZodError; שגיאות מטפל משתמשות בשדות error, ‏message ו-code. שמרו request_id או x-request-id לאבחון, ללא אמצעי גישה. תקנו שגיאות גישה 401/403 לפני ניסיון חוזר, ופעלו לפי Retry-After עבור 429. אם תוצאת כתיבה אינה ודאית או שמוחזר 5xx, קראו תחילה את התוצאה הקיימת. השתמשו שוב במפתח אידמפוטנטיות רק במקומות הנתמכים; התנהגות הניסיון החוזר משתנה בין פעולות ואינה מבטיחה מסירה בדיוק פעם אחת.

מדריך לפתרון בעיות

דוגמאות

הדוגמאות משתמשות בערכים בדויים שנבדקו מול הסכמות. החליפו את המזהים בכאלה שאתם מורשים להשתמש בהם, את המדיה בנכסים מוכנים ואת התאריכים במועד הפרסום שאישרתם. בדקו את התאמת החשבון לפני שליחת כתיבה. העמוד הזה אינו שולח בקשות API.

הגדירו בשרת שלכם SOSOAPI_ACCESS_TOKEN לאמצעי גישה שהפעולה הזו מקבלת, והשאירו אותו מחוץ לקוד הדפדפן. עבור סוכן AI, השתמשו ב-sosoapi auth login כדי להיכנס דרך הדפדפן ולאפשר ל-CLI לרענן את אמצעי הגישה שלו.

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "project_id": "11111111-1111-4111-8111-111111111111",
  "project_revision": 1,
  "corpus_snapshot_id": "11111111-1111-4111-8111-111111111111"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/projects/overview" \
  -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/projects/overview", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "project_id": "11111111-1111-4111-8111-111111111111",
  "project_revision": 1,
  "corpus_snapshot_id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /research-api/projects/overview < request.json

דוגמת תגובה סינתטית

{
  "project_id": "11111111-1111-4111-8111-111111111111",
  "project_revision": 1,
  "corpus_snapshot_id": "11111111-1111-4111-8111-111111111111",
  "method_version": "literal-mentions/v1",
  "coverage": "supplied_set",
  "evidence_count": 0,
  "unique_items": 0,
  "brand_union_count": 0,
  "overlap_count": 0,
  "brands": [],
  "languages": [],
  "platforms": [],
  "sources": [],
  "history": {
    "eligible": false,
    "reason": "insufficient_comparable_history"
  }
}

MCP: sosoapi_research_projects_overview