/api/v4/social/brandsMembuat merek
Membuat merek sosial sebagai wadah akun sosial terhubung dan postingan dari akun tersebut. Jumlah merek tidak dibatasi pada paket API.
Parameter
Body
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| input | object | wajib | Wrapper object. Every field below is a property of `input`, the entire body must be nested under it. |
| input.profileName | string | wajib | Display name of the brand. Shown wherever the brand is listed and used as the default author name in the composer. |
| input.timezone | object | wajib | The 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.businessIntent | string | opsional | One or two sentences describing what the business does, used to tailor content suggestions. Defaults to `general` when omitted. |
| input.categories | array of strings | opsional | Business categories for the brand, e.g. `["Furniture Store"]`. Defaults to an empty list. |
| input.siteUrl | string | opsional | The brand's website. Used to enrich content suggestions; setting it also queues a one-off read of the site. |
| input.logo | string | opsional | Public https URL of the brand logo. |
| input.countryIso | string | opsional | Two-letter ISO country code for the brand, e.g. `US`. |
| input.bio | string | opsional | Short brand bio. |
| input.brandHashtags | array of strings | opsional | Hashtags that belong to the brand, offered as suggestions in the composer. |
| input.competitorHashtags | array of strings | opsional | Competitor hashtags to track alongside the brand's own. |
| input.contentPreferredLanguage | string | opsional | Preferred language for generated content, e.g. `en`. |
Contoh permintaan
Body siap tempel. Ganti ID dan nilai placeholder dengan milik Anda.
{ "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.
{ "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`.
{ "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 —profileNameyang tidak disertakan atautimezone.tzCodeyang tidak dikenal — dikembalikan sebagaiHTTP 200dengansuccess: falsedan alasannya dalamerror. Anggap pemanggilan berhasil hanya jikasuccessbernilaitrue. - Hanya
profileNamedantimezoneyang wajib diisi.businessIntentdancategoriessecara default masing-masing bernilaigeneraldan daftar kosong, sehingga integrasi yang tidak memiliki padanan untuk field tersebut dapat menghilangkan keduanya sepenuhnya. timezone.tzCodebukan sekadar hiasan. Postingan yang dijadwalkan denganscheduleDate+scheduleTimeditafsirkan 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
brandIddan sebagai fieldsocialProfileIddalam body:brandIdselalu 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/limitsuntuk 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.
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" ] } }'