खोज केवल इस्तेमाल करने पर लोड होती है। नीचे सभी श्रेणियाँ देखें।

मीडिया और एसेट

एसेट इम्पोर्ट की स्थिति पाएँ

import_id से इम्पोर्ट पढ़ें। पोस्टिंग के लिए include_asset=true दें: तैयार परिणाम में पंजीकृत asset id, kind और स्थिर asset_url शामिल होते हैं, इसलिए अलग get_asset की आवश्यकता नहीं होती। लंबित या अनुपस्थित एसेट निर्धारित नहीं किए जा सकते। स्रोत या प्रीव्यू URL को कभी मीडिया की पहचान न मानें। प्रक्रिया अटकने पर job_id के साथ sosoapi_job_status पढ़ें; डुप्लिकेट इम्पोर्ट कभी शुरू न करें।

POST /assets-api/imports/status

कॉन्ट्रैक्ट की समीक्षा: · sha256:563d2d581da0ad29

परिचय

import_id से इम्पोर्ट पढ़ें। पोस्टिंग के लिए include_asset=true दें: तैयार परिणाम में पंजीकृत asset id, kind और स्थिर asset_url शामिल होते हैं, इसलिए अलग get_asset की आवश्यकता नहीं होती। लंबित या अनुपस्थित एसेट निर्धारित नहीं किए जा सकते। स्रोत या प्रीव्यू URL को कभी मीडिया की पहचान न मानें। प्रक्रिया अटकने पर job_id के साथ sosoapi_job_status पढ़ें; डुप्लिकेट इम्पोर्ट कभी शुरू न करें।

सफल HTTP रिस्पॉन्स का अर्थ अनुरोध पूरा होने के बजाय स्वीकार होना हो सकता है। बैकग्राउंड काम में लौटाई ID सहेजें और समाप्ति तक वही ऑपरेशन जाँचें। निर्धारित या स्वीकृत पोस्ट प्लेटफ़ॉर्म की पुष्टि पर ही प्रकाशित है; क्लाइंट टाइमआउट परिणाम सिद्ध नहीं करता।

प्रमाणीकरण और अनुमतियाँ

स्वीकार्य क्रेडेंशियल श्रेणियाँ
user_session, delegated_oauth, personal_access_token
प्रत्यायोजित क्षमता
agent:operate
न्यूनतम वर्कस्पेस भूमिका
viewer
एक्सेस का दायरा
वे संसाधन जिनके एक्सेस के लिए यह यूज़र अधिकृत है
सभी वर्कस्पेस के लिए सहमति आवश्यक
नहीं
स्थिति बदलता है
नहीं
ऑपरेशन पूरा होने पर
synchronous_http_response

टोकन केवल मालिक के अधिकार इस्तेमाल कर सकता है। हर अनुरोध वर्कस्पेस सदस्यता, संसाधन स्वामित्व, चुने वर्कस्पेस और दी क्षमताएँ जाँचता है। Core और full प्रोफ़ाइल दिखने वाले टूल बदलते हैं; एक्सेस नहीं देते।

अनुरोध के फ़ील्ड

Required का अर्थ पैरेंट ऑब्जेक्ट और चुनी शाखा के भीतर अनिवार्य है। अनिवार्य चाइल्ड से वैकल्पिक पैरेंट अनिवार्य नहीं होता। नीचे के नियम और फ़ील्ड नाम कॉन्ट्रैक्ट से लिए गए हैं।

अनुरोध के फ़ील्ड
फ़ील्ड / शाखाप्रकार / अनिवार्यशर्तें
$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)$"
import_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)$"
include_assetbooleanवैकल्पिक / आइटम—
संपूर्ण 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)$"
    },
    "import_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)$"
    },
    "include_asset": {
      "type": "boolean"
    }
  },
  "required": [
    "workspace_id",
    "import_id"
  ],
  "additionalProperties": false
}

रिस्पॉन्स और पूर्णता

सफल HTTP स्टेटस: 200. When the operation is complete: synchronous_http_response.

सफल HTTP रिस्पॉन्स का अर्थ अनुरोध पूरा होने के बजाय स्वीकार होना हो सकता है। बैकग्राउंड काम में लौटाई ID सहेजें और समाप्ति तक वही ऑपरेशन जाँचें। निर्धारित या स्वीकृत पोस्ट प्लेटफ़ॉर्म की पुष्टि पर ही प्रकाशित है; क्लाइंट टाइमआउट परिणाम सिद्ध नहीं करता।

Required का अर्थ पैरेंट ऑब्जेक्ट और चुनी शाखा के भीतर अनिवार्य है। अनिवार्य चाइल्ड से वैकल्पिक पैरेंट अनिवार्य नहीं होता। नीचे के नियम और फ़ील्ड नाम कॉन्ट्रैक्ट से लिए गए हैं।

रिस्पॉन्स और पूर्णता
फ़ील्ड / शाखाप्रकार / अनिवार्यशर्तें
$objectपैरेंट में अनिवार्य—
importobjectपैरेंट में अनिवार्य—
import.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)$"
import.statusstringपैरेंट में अनिवार्य
  • enum: ["queued","importing","needs_repair","ready","asset_purged","failed"]
import.job_idstring | nullपैरेंट में अनिवार्य—
import.job_idanyOf 1stringपैरेंट में अनिवार्य
  • 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)$"
import.job_idanyOf 2nullपैरेंट में अनिवार्य—
import.asset_idinteger | nullपैरेंट में अनिवार्य—
import.asset_idanyOf 1integerपैरेंट में अनिवार्य
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
import.asset_idanyOf 2nullपैरेंट में अनिवार्य—
import.completed_asset_idinteger | nullपैरेंट में अनिवार्य—
import.completed_asset_idanyOf 1integerपैरेंट में अनिवार्य
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
import.completed_asset_idanyOf 2nullपैरेंट में अनिवार्य—
import.asset_purged_atstring | nullपैरेंट में अनिवार्य—
import.asset_purged_atanyOf 1stringपैरेंट में अनिवार्य—
import.asset_purged_atanyOf 2nullपैरेंट में अनिवार्य—
import.source_urlstringपैरेंट में अनिवार्य
  • format: "uri"
import.final_urlstring | nullपैरेंट में अनिवार्य—
import.final_urlanyOf 1stringपैरेंट में अनिवार्य
  • format: "uri"
import.final_urlanyOf 2nullपैरेंट में अनिवार्य—
import.object_keystring | nullपैरेंट में अनिवार्य—
import.object_keyanyOf 1stringपैरेंट में अनिवार्य
  • minLength: 1
import.object_keyanyOf 2nullपैरेंट में अनिवार्य—
import.content_typestring | nullपैरेंट में अनिवार्य—
import.content_typeanyOf 1stringपैरेंट में अनिवार्य
  • minLength: 1
import.content_typeanyOf 2nullपैरेंट में अनिवार्य—
import.byte_sizeinteger | nullपैरेंट में अनिवार्य—
import.byte_sizeanyOf 1integerपैरेंट में अनिवार्य
  • minimum: 0
  • maximum: 9007199254740991
import.byte_sizeanyOf 2nullपैरेंट में अनिवार्य—
import.content_sha256string | nullपैरेंट में अनिवार्य—
import.content_sha256anyOf 1stringपैरेंट में अनिवार्य
  • pattern: "^[0-9a-f]{64}$"
import.content_sha256anyOf 2nullपैरेंट में अनिवार्य—
import.media_probereference | nullपैरेंट में अनिवार्य—
import.media_probeanyOf 1string | number | boolean | null | array | objectपैरेंट में अनिवार्य—
import.media_probeanyOf 1 / anyOf 1stringपैरेंट में अनिवार्य—
import.media_probeanyOf 1 / anyOf 2numberपैरेंट में अनिवार्य—
import.media_probeanyOf 1 / anyOf 3booleanपैरेंट में अनिवार्य—
import.media_probeanyOf 1 / anyOf 4nullपैरेंट में अनिवार्य—
import.media_probeanyOf 1 / anyOf 5arrayपैरेंट में अनिवार्य—
import.media_probe[]anyOf 1 / anyOf 5referenceवैकल्पिक / आइटम
  • #/$defs/__schema0
import.media_probeanyOf 1 / anyOf 6objectपैरेंट में अनिवार्य
  • additionalProperties: {"$ref":"#/$defs/__schema0"}
import.media_probe.*anyOf 1 / anyOf 6referenceवैकल्पिक / आइटम
  • #/$defs/__schema0
import.media_probeanyOf 2nullपैरेंट में अनिवार्य—
import.error_messagestring | nullपैरेंट में अनिवार्य—
import.error_messageanyOf 1stringपैरेंट में अनिवार्य—
import.error_messageanyOf 2nullपैरेंट में अनिवार्य—
import.created_atstringपैरेंट में अनिवार्य—
import.completed_atstring | nullपैरेंट में अनिवार्य—
import.completed_atanyOf 1stringपैरेंट में अनिवार्य—
import.completed_atanyOf 2nullपैरेंट में अनिवार्य—
assetobject | nullवैकल्पिक / आइटम—
assetanyOf 1objectवैकल्पिक / आइटम—
asset.idanyOf 1integer | stringपैरेंट में अनिवार्य—
asset.idanyOf 1 / anyOf 1integerपैरेंट में अनिवार्य
  • minimum: -9007199254740991
  • maximum: 9007199254740991
asset.idanyOf 1 / anyOf 2stringपैरेंट में अनिवार्य—
asset.asset_typeanyOf 1stringपैरेंट में अनिवार्य
  • enum: ["text","image","video","audio"]
asset.asset_urlanyOf 1string | nullपैरेंट में अनिवार्य—
asset.asset_urlanyOf 1 / anyOf 1stringपैरेंट में अनिवार्य—
asset.asset_urlanyOf 1 / anyOf 2nullपैरेंट में अनिवार्य—
assetanyOf 2nullवैकल्पिक / आइटम—
संपूर्ण JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "import": {
      "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)$"
        },
        "status": {
          "type": "string",
          "enum": [
            "queued",
            "importing",
            "needs_repair",
            "ready",
            "asset_purged",
            "failed"
          ]
        },
        "job_id": {
          "anyOf": [
            {
              "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)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "asset_id": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "completed_asset_id": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "asset_purged_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "source_url": {
          "type": "string",
          "format": "uri"
        },
        "final_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "object_key": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "content_type": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "byte_size": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "content_sha256": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "media_probe": {
          "anyOf": [
            {
              "$ref": "#/$defs/__schema0"
            },
            {
              "type": "null"
            }
          ]
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "status",
        "job_id",
        "asset_id",
        "completed_asset_id",
        "asset_purged_at",
        "source_url",
        "final_url",
        "object_key",
        "content_type",
        "byte_size",
        "content_sha256",
        "media_probe",
        "error_message",
        "created_at",
        "completed_at"
      ]
    },
    "asset": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "string"
                }
              ]
            },
            "asset_type": {
              "type": "string",
              "enum": [
                "text",
                "image",
                "video",
                "audio"
              ]
            },
            "asset_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "id",
            "asset_type",
            "asset_url"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "import"
  ],
  "$defs": {
    "__schema0": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/__schema0"
          }
        },
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/$defs/__schema0"
          }
        }
      ]
    }
  }
}

त्रुटियाँ और सुरक्षित पुनः प्रयास

HTTP स्टेटस और रिस्पॉन्स बॉडी जाँचें। 400 वैलिडेशन त्रुटि में ZodError हो सकता है; हैंडलर त्रुटियाँ error, message और code फ़ील्ड इस्तेमाल करती हैं। जाँच के लिए request_id या x-request-id रखें, क्रेडेंशियल के बिना। फिर प्रयास से पहले 401/403 एक्सेस त्रुटियाँ ठीक करें और 429 के लिए Retry-After का पालन करें। राइट अनिश्चित हो या 5xx लौटाए, तो पहले मौजूदा परिणाम पढ़ें। idempotency key केवल समर्थित स्थान पर दोबारा इस्तेमाल करें; पुनः प्रयास का व्यवहार ऑपरेशन के अनुसार बदलता है और ठीक एक बार डिलीवरी की गारंटी नहीं देता।

समस्या निवारण गाइड

उदाहरण

उदाहरणों में स्कीमा से जाँचे काल्पनिक मान हैं। IDs को अधिकृत IDs, मीडिया को तैयार एसेट और तारीखों को पुष्ट प्रकाशन समय से बदलें। राइट सबमिट करने से पहले खाते की पात्रता जाँचें। यह पेज API अनुरोध नहीं भेजता।

सर्वर पर SOSOAPI_ACCESS_TOKEN को इस ऑपरेशन के स्वीकार्य क्रेडेंशियल से सेट करें और ब्राउज़र कोड से बाहर रखें। एजेंट के लिए sosoapi auth login से ब्राउज़र साइन-इन करें और CLI को क्रेडेंशियल रिफ़्रेश करने दें।

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "import_id": "11111111-1111-4111-8111-111111111111"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/assets-api/imports/status" \
  -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/assets-api/imports/status", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "import_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 /assets-api/imports/status < request.json

कृत्रिम रिस्पॉन्स का उदाहरण

{
  "import": {
    "id": "11111111-1111-4111-8111-111111111111",
    "status": "queued",
    "job_id": null,
    "asset_id": null,
    "completed_asset_id": null,
    "asset_purged_at": null,
    "source_url": "https://example.com/media.png",
    "final_url": null,
    "object_key": null,
    "content_type": null,
    "byte_size": null,
    "content_sha256": null,
    "media_probe": null,
    "error_message": null,
    "created_at": "example",
    "completed_at": null
  }
}

MCP: sosoapi_get_asset_import_status