Sendlane MCP by usefulapi

Manage Sendlane lists, contacts, tags and custom fields; read campaign and SMS reports.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
87%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • LOWTool 'sendlane_list_list_unsubscribed' name length outside 3-30 rangein sendlane_list_list_unsubscribed
  • LOWTool 'sendlane_list_unsubscribed_contacts' name length outside 3-30 rangein sendlane_list_unsubscribed_contacts
  • LOWTool 'sendlane_get_contact_subscriptions' name length outside 3-30 rangein sendlane_get_contact_subscriptions
  • LOWTool 'sendlane_get_contact_custom_fields' name length outside 3-30 rangein sendlane_get_contact_custom_fields
  • LOWTool 'sendlane_remove_contact_from_list' name length outside 3-30 rangein sendlane_remove_contact_from_list
  • LOWTool 'sendlane_set_contact_custom_fields' name length outside 3-30 rangein sendlane_set_contact_custom_fields

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,717Tokens (tool definitions)
~1.2 KBTypical response size
Significant attention impact (4.47% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sendlane": {
      "url": "https://sendlane.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://sendlane.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (31)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢sendlane_list_lists(page, limit)

List the audience lists of the account: id, name, description, status, created date. GET /lists.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_list(list_id)

One audience list by id. GET /lists/{listId}.

Input Schema

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_list_contacts(list_id, from, to, page, limit)

Contacts on one list: email, name, phone, subscribed/suppressed state, tags, custom fields, lifetime value. GET /lists/{listId}/contacts.

Input Schema

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_list_unsubscribed(list_id, from, to, page, limit)

Contacts that unsubscribed from one list. GET /lists/{listId}/unsubscribed.

Input Schema

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_contacts(from, to, page, limit)

All contacts of the account: email, name, phone, lists, tags, custom fields, subscribed/suppressed state. Filter by creation time with from/to. GET /contacts.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_contact(contact_id)

One contact by id, with lists, tags, custom fields, consent, lifetime value and subscribed/suppressed state. GET /contacts/{contactId}.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_unsubscribed_contacts(from, to, page, limit)

Contacts that unsubscribed from the account. GET /contacts/unsubscribed.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_contact_subscriptions(contact_id)

The list subscriptions of one contact: list, subscribed/suppressed state, who added it and when. GET /contacts/{contactId}/subscriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_contact_tags(contact_id, page, limit)

The tags on one contact. GET /contacts/{contactId}/tags.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_contact_custom_fields(contact_id, page, limit)

The custom field values of one contact. GET /contacts/{contactId}/custom-fields.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_tags(page, limit)

The contact tags of the account: id, name, audience count. GET /tags.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_tag(tag_id)

One tag by id. GET /tags/{tagId}.

Input Schema

{
  "type": "object",
  "properties": {
    "tag_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "tag_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_tag_contacts(tag_id, from, to, page, limit)

Contacts that carry one tag. GET /tags/{tagId}/contacts.

Input Schema

{
  "type": "object",
  "properties": {
    "tag_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "tag_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_custom_fields(page, limit)

The custom contact fields of the account: id, name, type. Use the ids when setting field values. GET /custom-fields.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_segments(page, limit)

The segments of the account: id, name, list, match rule, last count. GET /segments.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_segment_contacts(segment_id, page, limit)

Contacts in one segment: id, email, name, phone. GET /segments/{segmentId}/contacts.

Input Schema

{
  "type": "object",
  "properties": {
    "segment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "segment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_campaigns(page, limit)

Email campaigns: id, name, status, scheduled and sent time, automation. GET /campaigns.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_campaign(campaign_id)

One email campaign by id. GET /campaigns/{campaignId}.

Input Schema

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "campaign_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_campaign_report(campaign_id, from, to)

Statistics of one email campaign: sent, opens, clicks (unique too), bounced, suppressed, unsubscribed, spam, revenue. from/to limit the period. GET /campaigns/{campaignId}/report.

Input Schema

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    }
  },
  "required": [
    "campaign_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_sms_messages(page, limit)

SMS messages (campaign and automation): id, name, campaign status, automation. GET /sms-messages.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_get_sms_report(message_id, from, to)

Statistics of one SMS message: sent, delivered, clicks, failed, replies, unsubscribed, credits, revenue. from/to limit the period. GET /sms-messages/{messageId}/report.

Input Schema

{
  "type": "object",
  "properties": {
    "message_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "from": {
      "description": "Only records from this time on. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    },
    "to": {
      "description": "Only records up to this time. Needs `from`. ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.",
      "type": "string"
    }
  },
  "required": [
    "message_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendlane_list_sender_profiles(page, limit)

The sender profiles (from name, from/reply email, postal address, default flag). GET /senders.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_create_list(name, description)

WRITE: create an audience list. Not idempotent: calling it twice makes two lists. POST /lists.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_update_list(list_id, name, description)

WRITE: rename a list and/or change its description (a full update: name is required, an omitted description may be cleared). PUT /lists/{listId}.

Input Schema

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": [
    "list_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_add_contacts_to_list(list_id, contacts)

WRITE: add one or more contacts (up to 100) to a list; a contact that does not exist is created. Each needs an email or a phone. Sendlane accepts the request for processing (HTTP 202). Only add people who agreed to receive marketing. POST /lists/{listId}/contacts.

Input Schema

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "contacts": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Email address. Email or phone is required.",
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "phone": {
            "description": "Phone number in international format, e.g. +14155550123. Email or phone is required.",
            "type": "string",
            "minLength": 3,
            "maxLength": 32
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email_consent": {
            "description": "True only if the person gave email marketing consent.",
            "type": "boolean"
          },
          "tag_ids": {
            "description": "Ids of existing tags to put on the contact (sendlane_list_tags).",
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          },
          "custom_fields": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991,
                  "description": "Custom field id (sendlane_list_custom_fields)."
                },
                "value": {
                  "type": "string",
                  "maxLength": 2000
                }
              },
              "required": [
                "id",
                "value"
              ]
            }
          }
        }
      }
    }
  },
  "required": [
    "list_id",
    "contacts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_remove_contact_from_list(list_id, contact_id)

WRITE: remove one contact from one list (the contact stays in the account). DELETE /lists/{listId}/contacts/{contactId}.

Input Schema

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "list_id",
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_unsubscribe_contact(contact_id)

WRITE: unsubscribe one contact from email marketing. The contact stops receiving campaigns. POST /contacts/{contactId}/unsubscribe.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_create_tag(name)

WRITE: create a contact tag. POST /tags.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_add_contact_tags(contact_id, tag_ids)

WRITE: put one or more existing tags on a contact. POST /contacts/{contactId}/tags.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "tag_ids": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "contact_id",
    "tag_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_remove_contact_tag(contact_id, tag_id)

WRITE: remove one tag from a contact (the tag itself is kept). DELETE /contacts/{contactId}/tags/{tagId}.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "tag_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "contact_id",
    "tag_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sendlane_set_contact_custom_fields(contact_id, custom_fields)

WRITE: add custom field values to a contact. Field ids come from sendlane_list_custom_fields. POST /contacts/{contactId}/custom-fields.

Input Schema

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "custom_fields": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Custom field id."
          },
          "value": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "id",
          "value"
        ]
      }
    }
  },
  "required": [
    "contact_id",
    "custom_fields"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded31 tools