Skip to content
API reference/Content requests

Ask a client for their content

Try it

Makes a page in your brand where your client sends what the site is built from — logo (Your logo), photos (Photos), phone (Phone number), email (Email address), address (Address), hours (Opening hours), about (About your business), services (What you offer) — and answers with the link to send them (their client logins also find it in their client area). What they send goes onto the site's DRAFT the moment it arrives: details into the business settings, the logo into the header, pictures into the site's library, the about words and services into the matching sections when there is one. Never published. One waiting request per site: pass replace: true to withdraw the waiting one. email_to sends the link in your name.

POST/api/v1/sites/{site_id}/content-requests

Authentication

An API key as Authorization: Bearer or x-api-key. It needs the sites:write scope — edit draft pages and sections.

sites:writeChanges the draft or a recordIdempotency-Key requiredMCP tool: create_content_request

Parameters

Named placeholders go in the path; the rest in a JSON body.

site_idstringPath · required
The site's id.1 to 100 characters
asksarray of stringBody · optional
What to ask for (default: everything): logo (Your logo), photos (Photos), phone (Phone number), email (Email address), address (Address), hours (Opening hours), about (About your business), services (What you offer).
notestringBody · optional
A personal note shown at the top of the client's page, plain text.At most 1500 characters
replacebooleanBody · optional
Withdraw a request that is still waiting and make this one instead.
email_tostringBody · optional
Also email the link to this address, in your brand's name (From name + reply-to are yours).At most 200 characters

Response

201 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).

curl
curl -X POST 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/content-requests' \
  -H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
Example arguments
{
  "site_id": "SITE_ID"
}
Response schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "site_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "OPEN",
        "ANSWERED",
        "WITHDRAWN"
      ]
    },
    "link": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The page to send your client (in your brand; your own address when it's connected). Null once it is closed."
    },
    "asks": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "logo",
          "photos",
          "phone",
          "email",
          "address",
          "hours",
          "about",
          "services"
        ]
      }
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "opened_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "When the client last opened the page (while it was waiting)."
    },
    "answered": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "email": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "at": {
              "type": "string"
            },
            "from_client_area": {
              "type": "boolean"
            },
            "phone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "business_email": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "hours": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "label",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "about": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "services": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "price": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "description",
                      "price"
                    ],
                    "additionalProperties": false
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "logo_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "photo_urls": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "placed": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": "Where each answer went on the draft, in words; null = not placed (no section fit)."
            }
          },
          "required": [
            "name",
            "email",
            "at",
            "from_client_area",
            "phone",
            "business_email",
            "address",
            "hours",
            "about",
            "services",
            "logo_url",
            "photo_urls",
            "placed"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "sample": {
      "type": "boolean"
    },
    "created_at": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "site_id",
    "status",
    "link",
    "asks",
    "note",
    "opened_at",
    "answered",
    "sample",
    "created_at"
  ],
  "additionalProperties": false
}