Pencarian hanya dimuat saat digunakan. Jelajahi semua kategori di bawah.

Media dan aset

Dapatkan status impor aset

Baca impor berdasarkan import_id. Untuk memposting, sertakan include_asset=true: hasil ready memuat ID aset terdaftar, kind, dan asset_url stabil, sehingga tidak perlu get_asset terpisah. Aset tertunda atau tidak ada tidak dapat dijadwalkan. Jangan pernah menggunakan URL sumber atau pratinjau sebagai identitas media. Jika terhenti, baca sosoapi_job_status dengan job_id; jangan pernah memulai impor duplikat.

POST /assets-api/imports/status

Kontrak ditinjau: · sha256:563d2d581da0ad29

Ringkasan

Baca impor berdasarkan import_id. Untuk memposting, sertakan include_asset=true: hasil ready memuat ID aset terdaftar, kind, dan asset_url stabil, sehingga tidak perlu get_asset terpisah. Aset tertunda atau tidak ada tidak dapat dijadwalkan. Jangan pernah menggunakan URL sumber atau pratinjau sebagai identitas media. Jika terhenti, baca sosoapi_job_status dengan job_id; jangan pernah memulai impor duplikat.

Respons HTTP berhasil dapat berarti permintaan diterima, bukan selesai. Untuk pekerjaan latar belakang, simpan ID yang dikembalikan dan periksa operasi yang sama sampai selesai. Postingan terjadwal atau diterima baru dipublikasikan setelah platform mengonfirmasi; timeout klien tidak membuktikan hasilnya.

Autentikasi dan izin

Jenis kredensial yang diterima
user_session, delegated_oauth, personal_access_token
Kemampuan yang didelegasikan
agent:operate
Peran ruang kerja minimum
viewer
Cakupan akses
Sumber daya yang boleh diakses pengguna ini
Persetujuan seluruh ruang kerja diperlukan
Tidak
Mengubah status
Tidak
Saat operasi selesai
synchronous_http_response

Token hanya dapat menggunakan hak pemiliknya. Setiap permintaan memeriksa keanggotaan ruang kerja, kepemilikan sumber daya, ruang kerja terpilih, dan kemampuan yang diberikan. Profil core dan full mengubah alat yang ditampilkan; tidak memberikan akses.

Kolom permintaan

Wajib berarti wajib dalam objek induk dan cabang yang dipilih. Anak wajib tidak membuat induk opsional menjadi wajib. Aturan dan nama kolom di bawah disalin dari kontrak.

Kolom permintaan
Kolom / cabangJenis / wajibBatasan
$objectWajib dalam induk
  • additionalProperties: false
workspace_idstringWajib dalam induk
  • 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_idstringWajib dalam induk
  • 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_assetbooleanOpsional / item—
JSON Schema lengkap
{
  "$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
}

Respons dan penyelesaian

Status HTTP berhasil: 200. Saat operasi selesai: synchronous_http_response.

Respons HTTP berhasil dapat berarti permintaan diterima, bukan selesai. Untuk pekerjaan latar belakang, simpan ID yang dikembalikan dan periksa operasi yang sama sampai selesai. Postingan terjadwal atau diterima baru dipublikasikan setelah platform mengonfirmasi; timeout klien tidak membuktikan hasilnya.

Wajib berarti wajib dalam objek induk dan cabang yang dipilih. Anak wajib tidak membuat induk opsional menjadi wajib. Aturan dan nama kolom di bawah disalin dari kontrak.

Respons dan penyelesaian
Kolom / cabangJenis / wajibBatasan
$objectWajib dalam induk—
importobjectWajib dalam induk—
import.idstringWajib dalam induk
  • 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.statusstringWajib dalam induk
  • enum: ["queued","importing","needs_repair","ready","asset_purged","failed"]
import.job_idstring | nullWajib dalam induk—
import.job_idanyOf 1stringWajib dalam induk
  • 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 2nullWajib dalam induk—
import.asset_idinteger | nullWajib dalam induk—
import.asset_idanyOf 1integerWajib dalam induk
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
import.asset_idanyOf 2nullWajib dalam induk—
import.completed_asset_idinteger | nullWajib dalam induk—
import.completed_asset_idanyOf 1integerWajib dalam induk
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
import.completed_asset_idanyOf 2nullWajib dalam induk—
import.asset_purged_atstring | nullWajib dalam induk—
import.asset_purged_atanyOf 1stringWajib dalam induk—
import.asset_purged_atanyOf 2nullWajib dalam induk—
import.source_urlstringWajib dalam induk
  • format: "uri"
import.final_urlstring | nullWajib dalam induk—
import.final_urlanyOf 1stringWajib dalam induk
  • format: "uri"
import.final_urlanyOf 2nullWajib dalam induk—
import.object_keystring | nullWajib dalam induk—
import.object_keyanyOf 1stringWajib dalam induk
  • minLength: 1
import.object_keyanyOf 2nullWajib dalam induk—
import.content_typestring | nullWajib dalam induk—
import.content_typeanyOf 1stringWajib dalam induk
  • minLength: 1
import.content_typeanyOf 2nullWajib dalam induk—
import.byte_sizeinteger | nullWajib dalam induk—
import.byte_sizeanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
import.byte_sizeanyOf 2nullWajib dalam induk—
import.content_sha256string | nullWajib dalam induk—
import.content_sha256anyOf 1stringWajib dalam induk
  • pattern: "^[0-9a-f]{64}$"
import.content_sha256anyOf 2nullWajib dalam induk—
import.media_probereference | nullWajib dalam induk—
import.media_probeanyOf 1string | number | boolean | null | array | objectWajib dalam induk—
import.media_probeanyOf 1 / anyOf 1stringWajib dalam induk—
import.media_probeanyOf 1 / anyOf 2numberWajib dalam induk—
import.media_probeanyOf 1 / anyOf 3booleanWajib dalam induk—
import.media_probeanyOf 1 / anyOf 4nullWajib dalam induk—
import.media_probeanyOf 1 / anyOf 5arrayWajib dalam induk—
import.media_probe[]anyOf 1 / anyOf 5referenceOpsional / item
  • #/$defs/__schema0
import.media_probeanyOf 1 / anyOf 6objectWajib dalam induk
  • additionalProperties: {"$ref":"#/$defs/__schema0"}
import.media_probe.*anyOf 1 / anyOf 6referenceOpsional / item
  • #/$defs/__schema0
import.media_probeanyOf 2nullWajib dalam induk—
import.error_messagestring | nullWajib dalam induk—
import.error_messageanyOf 1stringWajib dalam induk—
import.error_messageanyOf 2nullWajib dalam induk—
import.created_atstringWajib dalam induk—
import.completed_atstring | nullWajib dalam induk—
import.completed_atanyOf 1stringWajib dalam induk—
import.completed_atanyOf 2nullWajib dalam induk—
assetobject | nullOpsional / item—
assetanyOf 1objectOpsional / item—
asset.idanyOf 1integer | stringWajib dalam induk—
asset.idanyOf 1 / anyOf 1integerWajib dalam induk
  • minimum: -9007199254740991
  • maximum: 9007199254740991
asset.idanyOf 1 / anyOf 2stringWajib dalam induk—
asset.asset_typeanyOf 1stringWajib dalam induk
  • enum: ["text","image","video","audio"]
asset.asset_urlanyOf 1string | nullWajib dalam induk—
asset.asset_urlanyOf 1 / anyOf 1stringWajib dalam induk—
asset.asset_urlanyOf 1 / anyOf 2nullWajib dalam induk—
assetanyOf 2nullOpsional / item—
JSON Schema lengkap
{
  "$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"
          }
        }
      ]
    }
  }
}

Kesalahan dan percobaan ulang aman

Periksa status HTTP dan isi respons. Kesalahan validasi 400 mungkin berisi ZodError; kesalahan handler menggunakan kolom error, message, dan code. Simpan request_id atau x-request-id untuk diagnosis, tanpa kredensial. Atasi kesalahan akses 401/403 sebelum mencoba lagi, dan ikuti Retry-After untuk 429. Jika penulisan belum pasti atau mengembalikan 5xx, baca hasil yang sudah ada terlebih dahulu. Gunakan kembali kunci idempotensi hanya jika didukung; perilaku percobaan ulang berbeda menurut operasi dan tidak menjamin pengiriman tepat satu kali.

Panduan pemecahan masalah

Contoh

Contoh ini menggunakan nilai fiktif yang diperiksa terhadap skema. Ganti ID dengan yang diizinkan bagi Anda, media dengan aset siap, dan tanggal dengan waktu publikasi yang dikonfirmasi. Periksa kelayakan akun sebelum mengirim penulisan. Halaman ini tidak mengirim permintaan API.

Atur SOSOAPI_ACCESS_TOKEN di server Anda ke kredensial yang diterima operasi ini, dan jauhkan dari kode browser. Untuk agen, gunakan sosoapi auth login untuk masuk melalui browser dan biarkan CLI memperbarui kredensialnya.

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

Contoh respons sintetis

{
  "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