POST/api/v4/social/brands

Criar 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.

Requer uma chave de API. Consulte Autenticação para ver o formato do cabeçalho e a rotação de chaves.

Parâmetros

Corpo

NomeTipoObrigatórioDescrição
inputobjectobrigatórioWrapper object. Every field below is a property of `input`, the entire body must be nested under it.
input.profileNamestringobrigatórioDisplay name of the brand. Shown wherever the brand is listed and used as the default author name in the composer.
input.timezoneobjectobrigatórioThe 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.businessIntentstringopcionalOne or two sentences describing what the business does, used to tailor content suggestions. Defaults to `general` when omitted.
input.categoriesarray of stringsopcionalBusiness categories for the brand, e.g. `["Furniture Store"]`. Defaults to an empty list.
input.siteUrlstringopcionalThe brand's website. Used to enrich content suggestions; setting it also queues a one-off read of the site.
input.logostringopcionalPublic https URL of the brand logo.
input.countryIsostringopcionalTwo-letter ISO country code for the brand, e.g. `US`.
input.biostringopcionalShort brand bio.
input.brandHashtagsarray of stringsopcionalHashtags that belong to the brand, offered as suggestions in the composer.
input.competitorHashtagsarray of stringsopcionalCompetitor hashtags to track alongside the brand's own.
input.contentPreferredLanguagestringopcionalPreferred language for generated content, e.g. `en`.

Exemplo de requisição

Corpo pronto para colar. Substitua os IDs e valores de exemplo pelos seus.

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"]  }}

Respostas

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.

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 — um profileName ausente ou um timezone.tzCode desconhecido — retorna como HTTP 200 com success: false e o motivo em error. Considere a chamada bem-sucedida somente quando success for true.
  • Somente profileName e timezone são obrigatórios. businessIntent e categories têm como valores padrão general e uma lista vazia, respectivamente, portanto uma integração que não tenha equivalentes desses campos pode omiti-los completamente.
  • timezone.tzCode não é decorativo. Uma publicação agendada com scheduleDate + 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 brandId e como o campo socialProfileId do 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/limits para 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.

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"      ]    }  }'