Introduction
Maya Wealth Marketing API
Overview
Private Worker for Maya Wealth marketing sites. Reached through site service bindings, not the public gateway.
Queues SEO blog articles per organisation (caller or X-Maya-Organization-Id) using the org brand profile plus blog catalog (or legacy bundled category slugs).
Error body: { error: { code, message, details?, request_id? } }.
Integration guide: Maya Wealth Marketing service docs
OpenAPI v0.1.0 · source openapi/marketing.json
OpenAPI 3.0.0 · v0.1.0 · 14 operations
Operations
System
Liveness and generated documentation.
get/healthHealth check
/healthExample request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/health"Operation ID: getHealth
Responses
- 200
Service is running
application/json
get/v1/healthHealth check (versioned)
/v1/healthExample request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/health"Operation ID: getHealthV1
Responses
- 200
Service is running
application/json
Brand
Per-organisation voice and constraints for AI generation.
get/v1/brandGet organisation generation brand profile
/v1/brandExample request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/brand"Voice, audience, constraints, and image style used with the blog catalog when generating articles and hero images. Created with sensible defaults on first read.
Operation ID: getOrgBrand
Responses
- 200
Brand profile
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
patch/v1/brandUpdate organisation generation brand profile
/v1/brandExample request
curl -sS \
-X PATCH \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
"https://api.mayawealth.co.uk/marketing/v1/brand"Operation ID: updateOrgBrand
Request body
application/jsonOrgBrandPatch
Responses
- 200
Updated brand profile
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
Catalog
Per-organisation blog category definitions used to build SEO generation context.
get/v1/blog-catalog-typesList blog catalog types
/v1/blog-catalog-typesExample request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/blog-catalog-types"Organisation-defined blog categories used to build generation context for `POST /v1/blogs`. Each site maintains its own catalog so articles match that brand's topics and SEO rules.
Operation ID: listBlogCatalogTypes
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| page | query | integer | — |
| page_size | query | integer | — |
Responses
- 200
Blog catalog types
application/json
post/v1/blog-catalog-typesCreate blog catalog type
/v1/blog-catalog-typesExample request
curl -sS \
-X POST \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
"https://api.mayawealth.co.uk/marketing/v1/blog-catalog-types"Defines a blog category (server-assigned UUID `id`). Queue generation with `catalog_id` set to that id.
Operation ID: createBlogCatalogType
Request body(required)
application/jsonBlogCatalogTypeCreate
Responses
- 201
Blog catalog type created
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
get/v1/blog-catalog-types/{id}Get blog catalog type
/v1/blog-catalog-types/{id}Example request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/blog-catalog-types/example-id"Operation ID: getBlogCatalogType
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (uuid) | — |
Responses
- 200
Blog catalog type
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
patch/v1/blog-catalog-types/{id}Update blog catalog type
/v1/blog-catalog-types/{id}Example request
curl -sS \
-X PATCH \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
"https://api.mayawealth.co.uk/marketing/v1/blog-catalog-types/example-id"Operation ID: updateBlogCatalogType
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (uuid) | — |
Request body(required)
application/jsonBlogCatalogTypePatch
Responses
- 200
Blog catalog type updated
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
delete/v1/blog-catalog-types/{id}Delete blog catalog type
/v1/blog-catalog-types/{id}Example request
curl -sS \
-X DELETE \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/blog-catalog-types/example-id"Operation ID: deleteBlogCatalogType
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| id* | path | string (uuid) | — |
Responses
- 200
Deleted
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
Audit
Marketing generation activity log.
get/v1/auditMarketing audit trail
/v1/auditExample request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/audit"Operation ID: listMarketingAudit
Responses
- 200
Audit events
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
Blogs
Blog generation and published articles.
get/v1/blogsList published blogs
/v1/blogsExample request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/blogs"Operation ID: listBlogs
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| catalog_id | query | string | — |
| category_id | query | string | Use `catalog_id`. |
| limit | query | integer | — |
Responses
- 200
Published blogs
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
post/v1/blogsQueue an SEO blog article
/v1/blogsExample request
curl -sS \
-X POST \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
"https://api.mayawealth.co.uk/marketing/v1/blogs"Queues SEO article generation from the org brand profile plus `catalog_id` (catalog UUID) or explicit category `context`. Non-UUID slugs resolve legacy bundled blog-types when no catalog row exists. Tenancy: `X-Maya-Caller` / `CF-Worker`, or `X-Maya-Organization-Id`.
Operation ID: createBlog
Request body
application/jsonCreateBlogRequest
Responses
- 202
Blog queued
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 409
Conflict with the current resource state.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
get/v1/blogs/{slug}Get a published blog
/v1/blogs/{slug}Example request
curl -sS \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/blogs/example-id"Operation ID: getBlog
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| slug* | path | string | — |
Responses
- 200
Blog
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json
post/v1/blogs/{slug}/imageQueue a hero image for a published blog
/v1/blogs/{slug}/imageExample request
curl -sS \
-X POST \
-H "Accept: application/json" \
-H "Authorization: Bearer <jwt>" \
"https://api.mayawealth.co.uk/marketing/v1/blogs/example-id/image"Operation ID: createBlogImage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| slug* | path | string | — |
Responses
- 200
Image ready
application/json
- 202
Image queued
application/json
- 403
Caller is not a Maya marketing site service binding.
application/json
- 404
The requested resource was not found.
application/json
- 422
Validation failed.
application/json
- 429
Rate limit exceeded.
application/json
- 500
Unexpected server error.
application/json