POST/api/v4/social/brands

Membuat merek

Membuat merek sosial sebagai wadah akun sosial terhubung dan postingan dari akun tersebut. Jumlah merek tidak dibatasi pada paket API.

Memerlukan kunci API. Lihat Autentikasi untuk format header dan rotasi kunci.

Parameter

Body

NamaTipeWajibDeskripsi
inputobjectwajibWrapper object. Every field below is a property of `input`, the entire body must be nested under it.
input.profileNamestringwajibDisplay name of the brand. Shown wherever the brand is listed and used as the default author name in the composer.
input.timezoneobjectwajibThe brand's timezone as `{ label, tzCode, name, utc }`, all strings. `tzCode` is the one that matters: it is the IANA identifier the API validates and uses to interpret every `scheduleDate` / `scheduleTime` on this brand's posts. The other three are display labels.
input.businessIntentstringopsionalOne or two sentences describing what the business does, used to tailor content suggestions. Defaults to `general` when omitted.
input.categoriesarray of stringsopsionalBusiness categories for the brand, e.g. `["Furniture Store"]`. Defaults to an empty list.
input.siteUrlstringopsionalThe brand's website. Used to enrich content suggestions; setting it also queues a one-off read of the site.
input.logostringopsionalPublic https URL of the brand logo.
input.countryIsostringopsionalTwo-letter ISO country code for the brand, e.g. `US`.
input.biostringopsionalShort brand bio.
input.brandHashtagsarray of stringsopsionalHashtags that belong to the brand, offered as suggestions in the composer.
input.competitorHashtagsarray of stringsopsionalCompetitor hashtags to track alongside the brand's own.
input.contentPreferredLanguagestringopsionalPreferred language for generated content, e.g. `en`.

Contoh permintaan

Body siap tempel. Ganti ID dan nilai placeholder dengan milik Anda.

Request body
{  "input": {    "profileName": "Jenny Home",    "timezone": {      "label": "(GMT-05:00) Eastern Time",      "tzCode": "America/New_York",      "name": "Eastern Standard Time",      "utc": "-05:00"    },    "businessIntent": "A family-run home furnishings store selling handmade furniture and textiles.",    "categories": ["Furniture Store", "Home Goods"],    "siteUrl": "https://jennyhome.example",    "countryIso": "US",    "bio": "Handmade furniture for real homes.",    "brandHashtags": ["jennyhome", "handmadefurniture"]  }}

Respons

200Brand created. `socialProfile.id` is the `brandId` every other Social endpoint takes.
Response
{  "data": {    "createSocialProfile": {      "success": true,      "error": null,      "socialProfile": {        "id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",        "profileName": "Jenny Home",        "archived": false,        "logo": null,        "profileLogo": null,        "siteUrl": "https://jennyhome.example",        "countryIso": "US",        "bio": "Handmade furniture for real homes.",        "businessIntent": "A family-run home furnishings store selling handmade furniture and textiles.",        "categories": ["Furniture Store", "Home Goods"],        "brandHashtags": ["jennyhome", "handmadefurniture"],        "competitorHashtags": [],        "connectedChannelCount": 0,        "timezone": {          "label": "(GMT-05:00) Eastern Time",          "tzCode": "America/New_York",          "name": "Eastern Standard Time",          "utc": "-05:00"        },        "contentPreferredLanguage": "en"      }    }  }}
200Validation failed. The status is still 200: read `success`.
Response
{  "data": {    "createSocialProfile": {      "success": false,      "error": {        "message": "SY90003: timezone.tzCode is not a valid IANA identifier",        "code": "SY90003",        "contextInfo": null      },      "socialProfile": null    }  }}
401Unauthenticated, missing or invalid API key.

Membuat merek: objek tingkat teratas dalam Social API. Merek memiliki akun sosial yang Anda hubungkan dengannya dan setiap postingan yang dipublikasikan dari akun tersebut. Tidak ada operasi lain dalam Social API yang dapat dipanggil sebelum setidaknya satu merek tersedia, sehingga ini merupakan permintaan pertama dalam setiap integrasi Social.

Kasus penggunaan: menyiapkan klien untuk publikasi di media sosial. Saat pelanggan mendaftar di produk Anda, buat satu merek untuk setiap bisnis yang ingin mereka wakili dalam publikasi. Simpan socialProfile.id yang dikembalikan pada catatan bisnis tersebut di sistem Anda: nilai ini digunakan sebagai token jalur brandId dalam POST /social/brands/{brandId}/connections/link dan GET /social/brands/{brandId}/posts, serta sebagai field socialProfileId dalam body setiap postingan yang Anda buat. Kemudian arahkan pengguna melalui tautan koneksi yang dihosting untuk setiap platform tempat mereka ingin memublikasikan postingan.

Catatan.

  • Body permintaan harus dibungkus dalam objek input. Setiap operasi tulis dalam Social API dibungkus dengan cara ini, dengan satu pengecualian: tautan koneksi menerima body tanpa pembungkus.
  • Periksa success, bukan status HTTP. Kegagalan validasi — profileName yang tidak disertakan atau timezone.tzCode yang tidak dikenal — dikembalikan sebagai HTTP 200 dengan success: false dan alasannya dalam error. Anggap pemanggilan berhasil hanya jika success bernilai true.
  • Hanya profileName dan timezone yang wajib diisi. businessIntent dan categories secara default masing-masing bernilai general dan daftar kosong, sehingga integrasi yang tidak memiliki padanan untuk field tersebut dapat menghilangkan keduanya sepenuhnya.
  • timezone.tzCode bukan sekadar hiasan. Postingan yang dijadwalkan dengan scheduleDate + scheduleTime ditafsirkan dalam zona waktu merek, bukan zona waktu pemanggil dan bukan UTC. Mengubahnya nanti tidak mengubah waktu postingan yang sudah dijadwalkan.
  • Merek selalu menjadi milik akun yang terkait dengan kunci API. Tidak ada cara untuk membuat merek di akun lain: pengenal akun apa pun dalam body diabaikan.
  • ID merek berupa UUID biasa. ID tersebut bukan ID relay Base64 yang digunakan oleh Locations dan Posts lokasi, jadi jangan melakukan encoding atau decoding terhadapnya. ID yang sama muncul sebagai token jalur brandId dan sebagai field socialProfileId dalam body: brandId selalu hanya merupakan token URL, tidak pernah menjadi field dalam body.
  • Tidak ada batas jumlah merek pada paket API. Jumlah merek tidak dibatasi dan tidak dihitung sebagai penggunaan, sehingga pemanggilan ini tidak pernah ditolak karena batas jumlah dan Anda tidak perlu memeriksa kapasitas yang tersisa sebelum membuat merek. Yang dihitung sebagai penggunaan adalah koneksi — satu akun sosial yang ditautkan ke satu merek di satu jaringan. Lihat Paket dan add-on untuk mengetahui tingkatan koneksi dan harga paket koneksi, serta GET /social/limits untuk membaca kapasitas koneksi Anda yang tersisa sebelum mengarahkan pengguna melalui tautan koneksi.

Operasi tulis: tidak dijalankan pada akun aktif. Permintaan dan respons yang ditampilkan dibuat berdasarkan skema API.

Request
curl -X POST 'https://listingsapi.com/api/v4/social/brands' \  -H "Authorization: API $LISTINGSAPI_KEY" \  -H 'Content-Type: application/json' \  -d '{    "input": {      "profileName": "Jenny Home",      "timezone": {        "label": "(GMT-05:00) Eastern Time",        "tzCode": "America/New_York",        "name": "Eastern Standard Time",        "utc": "-05:00"      },      "businessIntent": "A family-run home furnishings store selling handmade furniture and textiles.",      "categories": [        "Furniture Store",        "Home Goods"      ],      "siteUrl": "https://jennyhome.example",      "countryIso": "US",      "bio": "Handmade furniture for real homes.",      "brandHashtags": [        "jennyhome",        "handmadefurniture"      ]    }  }'