{
  "openapi": "3.0.1",
  "info": {
    "title": "WeChat Chat Export Analyzer — Group Insights & Action Items",
    "description": "Analyze user-provided WeChat chat and group export records for questions, needs, concerns, decisions, action items, supplied brand and competitor mentions, participation patterns, and evidence windows. No WeChat login or chat extraction.",
    "version": "0.1",
    "x-build-id": "s61a4xlqLzos8aez7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrupulous_buckler~wechat-chat-export-analyzer-group-insights-action-items/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrupulous_buckler-wechat-chat-export-analyzer-group-insights-action-items",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrupulous_buckler~wechat-chat-export-analyzer-group-insights-action-items/runs": {
      "post": {
        "operationId": "runs-sync-scrupulous_buckler-wechat-chat-export-analyzer-group-insights-action-items",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrupulous_buckler~wechat-chat-export-analyzer-group-insights-action-items/run-sync": {
      "post": {
        "operationId": "run-sync-scrupulous_buckler-wechat-chat-export-analyzer-group-insights-action-items",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Data source",
            "enum": [
              "demo",
              "datasetMessages",
              "uploadedMessages"
            ],
            "type": "string",
            "description": "Run the paid synthetic example, analyze one or more Apify Datasets, or analyze pasted JSON message records.",
            "default": "demo"
          },
          "sourceDatasetIds": {
            "title": "Message Dataset IDs",
            "type": "array",
            "description": "One to ten Apify Dataset IDs containing customer-owned or consented chat export records.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "uploadedMessages": {
            "title": "Uploaded message records",
            "type": "array",
            "description": "Paste message strings or JSON records. Common message, sender, time, chat and type field aliases are recognized.",
            "default": []
          },
          "hasRightToAnalyze": {
            "title": "I have the right to analyze this data",
            "type": "boolean",
            "description": "Required outside demo mode. Confirm that the uploaded or referenced records are customer-owned, consented, authorized, or otherwise lawfully processed.",
            "default": false
          },
          "researchTopic": {
            "title": "Research topic",
            "type": "string",
            "description": "Short label for the business question, group, campaign, product, customer cohort, or project being analyzed.",
            "default": "WeChat group discussion"
          },
          "messageKeywords": {
            "title": "Keywords and topics to measure",
            "type": "array",
            "description": "Exact words or phrases to count, such as price, delivery, side effects, renewal, product names, project terms, or campaign phrases.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "knownEntities": {
            "title": "Brands, products and other entities",
            "type": "array",
            "description": "Exact entity names to measure. The Actor does not claim to automatically discover every brand or person.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "competitorNames": {
            "title": "Competitor and alternative names",
            "type": "array",
            "description": "Exact competitor, product, service or alternative names to identify in the supplied messages.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "customActionTerms": {
            "title": "Additional action-item terms",
            "type": "array",
            "description": "Optional exact cues for tasks and follow-ups, such as submit by Friday, assign, owner, deadline, or a team-specific phrase.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requireKeywordMatch": {
            "title": "Analyze only messages matching a supplied keyword",
            "type": "boolean",
            "description": "Off by default so surrounding conversation context is preserved. Requires at least one message keyword.",
            "default": false
          },
          "privacyMode": {
            "title": "Participant-name handling",
            "enum": [
              "anonymizeParticipants",
              "keepSuppliedNames"
            ],
            "type": "string",
            "description": "Anonymize supplied sender names by default or retain them when the customer is authorized to do so.",
            "default": "anonymizeParticipants"
          },
          "redactContactDetails": {
            "title": "Redact contact details in delivered text",
            "type": "boolean",
            "description": "Replaces common email addresses, phone numbers and explicit WeChat-ID labels in output evidence with placeholders.",
            "default": true
          },
          "excludeSystemMessages": {
            "title": "Exclude system and notification messages",
            "type": "boolean",
            "description": "Filters common join, leave, recall, notification, image-only and unsupported media placeholder rows.",
            "default": true
          },
          "maxMessages": {
            "title": "Messages to analyze (maximum 2,000)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "One $4.99 report analyzes at most 2,000 normalized messages across all supplied chats.",
            "default": 2000
          },
          "maxEvidence": {
            "title": "Maximum evidence rows per report section",
            "minimum": 3,
            "maximum": 100,
            "type": "integer",
            "description": "Limits auditable excerpts returned in questions, decisions, actions, needs and concerns.",
            "default": 20
          },
          "conversationWindowSize": {
            "title": "Messages before and after important evidence",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "Adds nearby messages from the same chat around selected decisions and action items.",
            "default": 1
          },
          "includeSourceMessages": {
            "title": "Keep normalized source messages inside the report",
            "type": "boolean",
            "description": "Useful for audit and export; turn off for a smaller report row. Row-level output is still delivered.",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}