EvoHub DocsEvoHub Docs Sign in

Open a ticket

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs": {
      "url": "https://docs.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
POST/api/v1/support/tickets

Opens a ticket. body becomes the first message of the conversation. A new ticket's status is open.

  • subject and body are required (surrounding spaces are trimmed); subject is at most 200 characters.
  • type is support (the default), bug, feature or question.
  • priority is low, normal (the default), high or urgent.
  • reporter_email, reporter_name, org_name and url are stored as sent, to tell the support team who to answer and where the problem was seen. They are optional.

Requires no scope.

Authorization

Any one of:

Request body required

Content type: application/json

Type: CreateTicketRequest

  • subject string required
    Max length: 200
  • body string required
    The first message of the conversation.
  • type string
    One of: support bug feature question · Default: support
  • priority string
    One of: low normal high urgent · Default: normal
  • reporter_email string
  • reporter_name string
  • org_name string
  • url string
    The page or resource the ticket is about.

Responses

201

The ticket was opened.

Content type: application/json

Type: object

  • success boolean
    Value: true
  • data Ticket
    Show Ticket properties
    • id string
      Example: tkt_3f9a1c2e7b5d4a60
    • org_id string
    • user_id string
      Who opened the ticket — the person behind a personal key, or the organization key's own id.
    • subject string
    • type string
      One of: support bug feature question
    • status string
      open when new or after the caller replies. EvoHub support moves it to pending, resolved or closed.
      One of: open pending resolved closed
    • priority string
      One of: low normal high urgent
    • reporter_email string
      As sent when the ticket was opened; "" when it was not.
    • reporter_name string
    • org_name string
    • url string
    • created_at string (date-time)
    • updated_at string (date-time)

400

The body is not JSON (INVALID_JSON), or a field breaks a rule (VALIDATION_ERROR; the message names it): subject or body is missing or blank, type or priority is not one of the allowed values, or subject is longer than 200 characters (this one also carries details naming the field).

Content type: application/json

Type: Error | ValidationFailed

One of:

  • Error
    Show Error properties
    • success boolean
      Sent by Support; the gateway's own refusals leave it out.
      Value: false
    • error object required
      • code string required
        Example: NOT_FOUND
      • message string required
        Example: ticket not found
      • request_id string
  • ValidationFailed
    Show ValidationFailed properties
    • success boolean
      Value: false
    • error object required
      • code string required
        Value: VALIDATION_ERROR
      • message string required
      • details array of object required
        • field string
        • message string
      • request_id string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • success boolean
    Sent by Support; the gateway's own refusals leave it out.
    Value: false
  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: ticket not found
    • request_id string

429

Too many requests (RATE_LIMITED). Wait for Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait before retrying.

Content type: application/json

Type: Error

  • success boolean
    Sent by Support; the gateway's own refusals leave it out.
    Value: false
  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: ticket not found
    • request_id string

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • success boolean
    Sent by Support; the gateway's own refusals leave it out.
    Value: false
  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: ticket not found
    • request_id string

Example request

curl -X POST 'https://evohub.io/api/v1/support/tickets' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
  "url": "https://evohub.io/oncall/integrations",
  "body": "Alerts from our Prometheus integration arrive 5–10 minutes late\nsince about 07:30 UTC. Request id of one late delivery:\nreq_9a8b7c6d5e4f3a2b.\n",
  "type": "bug",
  "subject": "Webhook deliveries delayed since this morning",
  "org_name": "Acme",
  "priority": "high",
  "reporter_name": "Dana Ops",
  "reporter_email": "ops@acme.example"
}'