/api/v4/social/brandsCriar uma marca
Cria uma marca social que reúne contas sociais conectadas e suas publicações. As marcas são ilimitadas nos planos de API.
Parâmetros
Corpo
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| input | object | obrigatório | Wrapper object. Every field below is a property of `input`, the entire body must be nested under it. |
| input.profileName | string | obrigatório | Display name of the brand. Shown wherever the brand is listed and used as the default author name in the composer. |
| input.timezone | object | obrigatório | 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 | opcional | One or two sentences describing what the business does, used to tailor content suggestions. Defaults to `general` when omitted. |
| input.categories | array of strings | opcional | Business categories for the brand, e.g. `["Furniture Store"]`. Defaults to an empty list. |
| input.siteUrl | string | opcional | The brand's website. Used to enrich content suggestions; setting it also queues a one-off read of the site. |
| input.logo | string | opcional | Public https URL of the brand logo. |
| input.countryIso | string | opcional | Two-letter ISO country code for the brand, e.g. `US`. |
| input.bio | string | opcional | Short brand bio. |
| input.brandHashtags | array of strings | opcional | Hashtags that belong to the brand, offered as suggestions in the composer. |
| input.competitorHashtags | array of strings | opcional | Competitor hashtags to track alongside the brand's own. |
| input.contentPreferredLanguage | string | opcional | Preferred language for generated content, e.g. `en`. |
Exemplo de requisição
Corpo pronto para colar. Substitua os IDs e valores de exemplo pelos seus.
{ "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"] }}Respostas
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.
Cria uma marca: o objeto de nível superior da Social API. A uma marca pertencem as contas sociais que você conecta a ela e todas as publicações feitas a partir dessas contas. Nenhuma outra operação da Social API pode ser chamada até que exista pelo menos uma marca, portanto esta é a primeira requisição em qualquer integração com a Social API.
Caso de uso: integração de um cliente à publicação em redes sociais. Quando um cliente se cadastrar no seu produto, crie uma marca para cada empresa para a qual ele quiser publicar. Armazene o socialProfile.id retornado no seu próprio registro dessa empresa: ele é o token de caminho brandId em POST /social/brands/{brandId}/connections/link e GET /social/brands/{brandId}/posts, e o campo socialProfileId do corpo de cada publicação que você criar. Em seguida, encaminhe o usuário pelo link de conexão hospedado para cada plataforma na qual ele quiser publicar.
Observações.
- O corpo da requisição deve estar encapsulado em um objeto
input. Todas as operações de escrita na Social API são encapsuladas dessa forma, com uma exceção: o link de conexão aceita um corpo sem encapsulamento. - Verifique
success, não o status HTTP. Uma falha de validação — umprofileNameausente ou umtimezone.tzCodedesconhecido — retorna comoHTTP 200comsuccess: falsee o motivo emerror. Considere a chamada bem-sucedida somente quandosuccessfortrue. - Somente
profileNameetimezonesão obrigatórios.businessIntentecategoriestêm como valores padrãogenerale uma lista vazia, respectivamente, portanto uma integração que não tenha equivalentes desses campos pode omiti-los completamente. timezone.tzCodenão é decorativo. Uma publicação agendada comscheduleDate+scheduleTimeé interpretada no fuso horário da marca, não no de quem faz a chamada nem em UTC. Alterá-lo posteriormente não modifica os horários das publicações já agendadas.- A marca sempre pertence à conta associada à chave de API. Não é possível criar uma marca em outra conta: qualquer identificador de conta no corpo é ignorado.
- Os IDs de marca são UUIDs simples. Eles não são os IDs relay em Base64 usados por Locations e Posts de locais, portanto não os codifique nem decodifique. O mesmo ID aparece como o token de caminho
brandIde como o camposocialProfileIddo corpo:brandIdé sempre apenas um token de URL, nunca um campo do corpo. - Não há limite de marcas em um plano de API. As marcas são ilimitadas e não têm o uso contabilizado, portanto esta chamada nunca é recusada por atingir um limite e você não precisa verificar a capacidade disponível antes de criar uma. O que tem o uso contabilizado são as conexões — uma conta social vinculada a uma marca em uma rede. Consulte Planos e complementos para conhecer as faixas de conexões e o preço de um pacote de conexões, e
GET /social/limitspara consultar sua capacidade disponível de conexões antes de encaminhar um usuário por um link de conexão.
Operação de escrita: não executada na conta real. A requisição e a resposta exibidas são construídas a partir do esquema da 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" ] } }'