Skip to main content
POST
/
api
/
businesses
Create business
curl --request POST \
  --url https://api.mymarky.ai/api/businesses \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "tone": "<string>",
  "audience_combined": "<string>",
  "caption_writing_rules": "<string>",
  "caption_suffix": "<string>",
  "custom_caption_prompt": "<string>",
  "imagery_preferences": "<string>",
  "tagline": "<string>",
  "ctas": [
    "<string>"
  ],
  "palettes": [
    {
      "name": "My Palette",
      "colors": [
        "<string>"
      ],
      "text_color": "<string>",
      "accent_color": "<string>",
      "background_color": "<string>"
    }
  ],
  "header_font": {
    "name": "<string>",
    "url": "<string>"
  },
  "body_font": {
    "name": "<string>",
    "url": "<string>"
  },
  "logo_url": "<string>",
  "logo_background_color": "<string>",
  "logo_width": 123,
  "description": "<string>",
  "industry": "<string>",
  "website": "<string>",
  "language": "English"
}
'
import requests

url = "https://api.mymarky.ai/api/businesses"

payload = {
"name": "<string>",
"tone": "<string>",
"audience_combined": "<string>",
"caption_writing_rules": "<string>",
"caption_suffix": "<string>",
"custom_caption_prompt": "<string>",
"imagery_preferences": "<string>",
"tagline": "<string>",
"ctas": ["<string>"],
"palettes": [
{
"name": "My Palette",
"colors": ["<string>"],
"text_color": "<string>",
"accent_color": "<string>",
"background_color": "<string>"
}
],
"header_font": {
"name": "<string>",
"url": "<string>"
},
"body_font": {
"name": "<string>",
"url": "<string>"
},
"logo_url": "<string>",
"logo_background_color": "<string>",
"logo_width": 123,
"description": "<string>",
"industry": "<string>",
"website": "<string>",
"language": "English"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
tone: '<string>',
audience_combined: '<string>',
caption_writing_rules: '<string>',
caption_suffix: '<string>',
custom_caption_prompt: '<string>',
imagery_preferences: '<string>',
tagline: '<string>',
ctas: ['<string>'],
palettes: [
{
name: 'My Palette',
colors: ['<string>'],
text_color: '<string>',
accent_color: '<string>',
background_color: '<string>'
}
],
header_font: {name: '<string>', url: '<string>'},
body_font: {name: '<string>', url: '<string>'},
logo_url: '<string>',
logo_background_color: '<string>',
logo_width: 123,
description: '<string>',
industry: '<string>',
website: '<string>',
language: 'English'
})
};

fetch('https://api.mymarky.ai/api/businesses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mymarky.ai/api/businesses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'tone' => '<string>',
'audience_combined' => '<string>',
'caption_writing_rules' => '<string>',
'caption_suffix' => '<string>',
'custom_caption_prompt' => '<string>',
'imagery_preferences' => '<string>',
'tagline' => '<string>',
'ctas' => [
'<string>'
],
'palettes' => [
[
'name' => 'My Palette',
'colors' => [
'<string>'
],
'text_color' => '<string>',
'accent_color' => '<string>',
'background_color' => '<string>'
]
],
'header_font' => [
'name' => '<string>',
'url' => '<string>'
],
'body_font' => [
'name' => '<string>',
'url' => '<string>'
],
'logo_url' => '<string>',
'logo_background_color' => '<string>',
'logo_width' => 123,
'description' => '<string>',
'industry' => '<string>',
'website' => '<string>',
'language' => 'English'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.mymarky.ai/api/businesses"

payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"tone\": \"<string>\",\n \"audience_combined\": \"<string>\",\n \"caption_writing_rules\": \"<string>\",\n \"caption_suffix\": \"<string>\",\n \"custom_caption_prompt\": \"<string>\",\n \"imagery_preferences\": \"<string>\",\n \"tagline\": \"<string>\",\n \"ctas\": [\n \"<string>\"\n ],\n \"palettes\": [\n {\n \"name\": \"My Palette\",\n \"colors\": [\n \"<string>\"\n ],\n \"text_color\": \"<string>\",\n \"accent_color\": \"<string>\",\n \"background_color\": \"<string>\"\n }\n ],\n \"header_font\": {\n \"name\": \"<string>\",\n \"url\": \"<string>\"\n },\n \"body_font\": {\n \"name\": \"<string>\",\n \"url\": \"<string>\"\n },\n \"logo_url\": \"<string>\",\n \"logo_background_color\": \"<string>\",\n \"logo_width\": 123,\n \"description\": \"<string>\",\n \"industry\": \"<string>\",\n \"website\": \"<string>\",\n \"language\": \"English\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.mymarky.ai/api/businesses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"tone\": \"<string>\",\n \"audience_combined\": \"<string>\",\n \"caption_writing_rules\": \"<string>\",\n \"caption_suffix\": \"<string>\",\n \"custom_caption_prompt\": \"<string>\",\n \"imagery_preferences\": \"<string>\",\n \"tagline\": \"<string>\",\n \"ctas\": [\n \"<string>\"\n ],\n \"palettes\": [\n {\n \"name\": \"My Palette\",\n \"colors\": [\n \"<string>\"\n ],\n \"text_color\": \"<string>\",\n \"accent_color\": \"<string>\",\n \"background_color\": \"<string>\"\n }\n ],\n \"header_font\": {\n \"name\": \"<string>\",\n \"url\": \"<string>\"\n },\n \"body_font\": {\n \"name\": \"<string>\",\n \"url\": \"<string>\"\n },\n \"logo_url\": \"<string>\",\n \"logo_background_color\": \"<string>\",\n \"logo_width\": 123,\n \"description\": \"<string>\",\n \"industry\": \"<string>\",\n \"website\": \"<string>\",\n \"language\": \"English\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.mymarky.ai/api/businesses")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"tone\": \"<string>\",\n \"audience_combined\": \"<string>\",\n \"caption_writing_rules\": \"<string>\",\n \"caption_suffix\": \"<string>\",\n \"custom_caption_prompt\": \"<string>\",\n \"imagery_preferences\": \"<string>\",\n \"tagline\": \"<string>\",\n \"ctas\": [\n \"<string>\"\n ],\n \"palettes\": [\n {\n \"name\": \"My Palette\",\n \"colors\": [\n \"<string>\"\n ],\n \"text_color\": \"<string>\",\n \"accent_color\": \"<string>\",\n \"background_color\": \"<string>\"\n }\n ],\n \"header_font\": {\n \"name\": \"<string>\",\n \"url\": \"<string>\"\n },\n \"body_font\": {\n \"name\": \"<string>\",\n \"url\": \"<string>\"\n },\n \"logo_url\": \"<string>\",\n \"logo_background_color\": \"<string>\",\n \"logo_width\": 123,\n \"description\": \"<string>\",\n \"industry\": \"<string>\",\n \"website\": \"<string>\",\n \"language\": \"English\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "tone": "<string>",
  "audience_combined": "<string>",
  "caption_writing_rules": "<string>",
  "caption_suffix": "<string>",
  "custom_caption_prompt": "<string>",
  "imagery_preferences": "<string>",
  "tagline": "<string>",
  "ctas": [
    "<string>"
  ],
  "palettes": [
    {
      "name": "My Palette",
      "colors": [
        "<string>"
      ],
      "text_color": "<string>",
      "accent_color": "<string>",
      "background_color": "<string>"
    }
  ],
  "header_font": {
    "name": "<string>",
    "url": "<string>"
  },
  "body_font": {
    "name": "<string>",
    "url": "<string>"
  },
  "logo_url": "<string>",
  "logo_background_color": "<string>",
  "logo_width": 123,
  "name": "<string>",
  "description": "<string>",
  "industry": "<string>",
  "website": "<string>",
  "language": "English",
  "platform_writing_instructions": {},
  "updated_at": "2023-11-07T05:31:56Z"
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}
{
"error": {
"type": "<string>",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string | null

Optional. Send a unique value (e.g. a UUID) to make this create request safe to retry. A repeat with the same key returns the original response instead of creating a duplicate. Cached for 24h, scoped to your org. Reusing a key with a different body returns 422.

Body

application/json
name
string
required

Business name

tone
string | null

Brand voice — the tone and personality Marky writes captions in (the 'Profile' field in the app).

audience_combined
string | null

The target audience the brand writes for — who the posts are meant to reach (the 'Target Audience' field in the app).

caption_writing_rules
string | null

Extra rules Marky follows when writing captions (e.g. 'never use emojis', 'always end with a question').

caption_suffix
string | null

Text appended to the end of every generated caption (e.g. a hashtag block or a link).

custom_caption_prompt
string | null

A custom instruction injected into caption generation for this business.

imagery_preferences
string | null

Guidance on the imagery the brand prefers (style, subjects, mood).

tagline
string | null

Brand tagline shown on designs.

ctas
string[] | null

Call-to-action phrases Marky can use on designs (e.g. 'Call today', 'Book now').

palettes
Palette · object[] | null

Brand color palettes used on generated designs.

header_font
FontSetting · object | null

Font used for headlines on designs.

body_font
FontSetting · object | null

Font used for body text on designs.

logo_url
string | null

URL of the brand logo.

logo_background_color
string | null

Background color behind the logo on designs (hex, or '#00000000' for transparent).

logo_width
integer | null

Logo width in pixels, used when laying the logo onto designs.

description
string | null

Business description

industry
string | null

Industry (e.g. 'Real Estate', 'Marketing Agency')

website
string | null

Business website URL

language
string
default:English

Content language as its English name (e.g. 'English', 'French', 'Spanish').

Response

Successful Response

id
string
required

Business ID

created_at
string<date-time>
required

When the business was created

tone
string | null

Brand voice — the tone and personality Marky writes captions in (the 'Profile' field in the app).

audience_combined
string | null

The target audience the brand writes for — who the posts are meant to reach (the 'Target Audience' field in the app).

caption_writing_rules
string | null

Extra rules Marky follows when writing captions (e.g. 'never use emojis', 'always end with a question').

caption_suffix
string | null

Text appended to the end of every generated caption (e.g. a hashtag block or a link).

custom_caption_prompt
string | null

A custom instruction injected into caption generation for this business.

imagery_preferences
string | null

Guidance on the imagery the brand prefers (style, subjects, mood).

tagline
string | null

Brand tagline shown on designs.

ctas
string[] | null

Call-to-action phrases Marky can use on designs (e.g. 'Call today', 'Book now').

palettes
Palette · object[] | null

Brand color palettes used on generated designs.

header_font
FontSetting · object | null

Font used for headlines on designs.

body_font
FontSetting · object | null

Font used for body text on designs.

logo_url
string | null

URL of the brand logo.

logo_background_color
string | null

Background color behind the logo on designs (hex, or '#00000000' for transparent).

logo_width
integer | null

Logo width in pixels, used when laying the logo onto designs.

name
string | null

Business name

description
string | null

Business description

industry
string | null

Industry category

website
string | null

Business website URL

language
string
default:English

Content language

platform_writing_instructions
Platform Writing Instructions · object | null

The user's customized per-platform caption-writing instructions (empty when none set). Keys are canonical platform names (e.g. 'instagram', 'linkedIn') plus 'common' (applies to all platforms). Follow the matching entry when writing a caption or platform_overrides caption — the user's instructions ALWAYS outrank generic platform best practices. Update via PATCH (merge semantics). Returned by get_business only, not the list endpoint.

updated_at
string<date-time> | null

Last update time