1. Chart Analysis
Returning.AI
  • Getting Started
  • Authentication
    • Register user with password
      POST
    • Verify user email
      POST
    • Log in user with password
      POST
    • Secure Auth
      GET
  • Users
    • Get user
      GET
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      POST
    • List mini-game logs by user email
      POST
    • Get user's current Mini Games and Streak stats
      POST
  • Messaging
    • Message Actions
      • Direct Channel
        • private DM channel
          • Reply Message
          • Send Message
          • React Message
        • public channel
          • Reply Message
          • Send Message
          • React Message
      • Forum Channel
        • Send Message
        • Reply Message
        • React Message
      • Text Channel
        • Reply Message
        • Send Message
        • React Message
      • Iframe Channel
        • Reply Message
        • Send Message
        • React Message
    • Get Messages
      GET
    • Send Message
      POST
    • Reply Message
      POST
    • React Message
      POST
    • Upload message images
      POST
  • Gamification
    • Leaderboards
      • List leaderboards with pagination
      • Create a new leaderboard
      • Get a single leaderboard by ID
      • Update an existing leaderboard
      • Delete a leaderboard
    • Streaks & Mini Games
      • List user streak logs
      • Update user spin-wheel information
    • Get tiers and XP settings
      GET
    • Get daily user gamification history
      POST
    • List user gamification logs
      POST
    • Get user activity stats
      POST
  • Rewards & Redemptions
    • Update redemption order status
    • List redemption orders by user email
    • List redemption statuses
    • Get redemption status by ID
    • List redemption orders by community
    • Create redemption order status
    • Get redemption order status history
  • Chart Analysis
    • Create Analysis
      POST
    • Get Analysis
      GET
    • Update Analysis
      PATCH
    • Delete Analysis
      DELETE
    • List Analyses
      GET
    • Append Drawings
      POST
  • Bulk Operations
    • List bulk update jobs
    • Get bulk update job status
    • Get bulk update job details
    • Bulk update users from CSV
    • Bulk update premium currency from CSV
  • Channels
    • Iframe
    • List integration channels
  • Events
    • Outgoing webhooks
      • Encryption
      • User Joins Server
      • User Visits server
      • New Message Posted Anywhere
      • New Message Posted To channel
      • Purchased Store Item
    • Incoming webhooks
      • API Keys & Encryption
      • Send message into channels
      • Update Custom User Fields
      • Update In-game currency
  • Widgets
    • Authenticated Widgets
    • Public widgets
  • Community Analytics
    • Get Loyalty Overview
  • Store
    • Purchase History
      • Update purchase history redemption instructions or voucher details
    • Categories
      • List store categories
      • Create store category
      • Update store category
      • Delete store category
      • Get store category by ID
    • Products
      • List store products
      • Create store product
      • Update store product
      • Delete store product
      • Get store product by ID
    • Get store configuration
    • Update store configuration
  • Community
    • Appearance
      • Update community theme colors
      • Update community bot profile
      • Update community URL metadata
      • Update community name and URL
    • Community Users
      • Get community users
      • Get user
    • Create community
  • API Keys
    • Community API Keys
      • Create API key
      • Read API keys
      • Delete API key
      • Update API key
    • User API Keys
      • List user API keys
      • Create user API key
      • Update user API key
      • Delete user API key
      • Get current API key information
  • User Fields
    • User Field History
      • Get all user field histories in a community
      • Get user field histories for a specific field
      • Get user field histories for a specific user
      • Get user field histories of specific user field and user
      • Create user field history for specific user
      • Create user field history
      • Get user field histories
    • Get Specific User Field
    • Update Custom User Field
    • Create user field
    • Delete Custom User Field
    • Get all user fields for a community
    • Delete user field
    • Update user field
    • Get specific user field
  • Legacy
    • Servers
      • Create server
      • List servers
      • Update server metadata
    • Bulk Operations
      • Bulk import users from CSV
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
      • Reply to message
      • Send message
      • React to message
    • Roles & Permissions
      • List server roles
      • Create role
      • Update role
      • Delete role
      • List user roles
      • Add role to user
      • Remove role from user
    • Users
      • Upload user avatar
    • Channels
      • Create channel
      • Update channel
      • Delete channel
    • API Keys
      • List integration API keys
      • Create integration API key
      • Delete integration API key
      • Update integration API key
  • Schemas
    • Sample Schemas
    • Schemas
    • Outgoing webhooks
    • Analysis
    • Pet
    • Category
    • Tag
    • ValidationError
    • NotFoundError
    • InternalServerError
    • NotImplementedError
    • CreateUserFieldHistoryResponse
    • CreateUserFieldHistorySuccessResponse
    • UserFieldHistoryItem
    • GetUserFieldHistoriesResponse
    • UserFieldHistoriesValidationError
    • UserFieldHistoriesMetaWithValidation
    • UserFieldHistoriesMetaWithPagination
    • GetUserFieldHistoriesSuccessResponse
    • CreateUserFieldResponse
    • CreateUserFieldSuccessResponse
    • DeleteUserFieldResponse
    • DeleteUserFieldSuccessResponse
    • UserFieldCreator
    • GetUserFieldResponse
    • GetUserFieldSuccessResponse
    • ValidationErrorItem
    • GetUserFieldsMetaResponse
    • CreatorInfo
    • UserFieldResponse
    • GetUserFieldsSuccessResponse
    • UpdateUserFieldResponse
    • UpdateUserFieldPayload
    • UpdateUserFieldSuccessResponse
    • MetaResponse
    • GetUserResponse
    • GetUserSuccessResponse
    • Purchased store item
    • ErrorResponse
    • New message posted to channel
    • UpdateAnalysisRequest
    • User visits server
    • AppendDrawingsRequest
    • User join server
    • CreateAnalysisResponse
    • GetAnalysisResponse
    • UpdateAnalysisResponse
    • AppendDrawingsResponse
    • AnalysisMetadata
    • Expiry
    • Levels
    • LevelEntry
    • Drawing
    • HorizontalLineDrawing
    • LineDrawing
    • RectangleDrawing
    • ParallelDrawing
    • FibonacciRetracementDrawing
    • Coordinate
    • DrawingStyle
    • AnalysisDetail
    • AnalysisSummary
    • CreateAnalysisRequest
    • ListAnalysesResponse
    • StandardApiError
    • StandardSuccessEnvelope
    • PurchasedStoreItemEvent
    • ChannelMessagePostedEvent
    • UserVisitedCommunityEvent
    • UserJoinedCommunityEvent
  1. Chart Analysis

Create Analysis

POST
/v1/analysis/{communityId}/channels/{channelId}
Creates a new technical chart analysis with:
Multi-level support/resistance system
Chart drawings (HORIZONTAL_LINE, LINE, RECTANGLE, PARALLEL, FIB_RETRACEMENT)
Text-to-object linking with [[objectId:text]] syntax
Client→Persisted ID mapping

Analysis Types#

Analysis type is auto-determined by direction + entryPlacement:
bullish_breakout: BULLISH + ABOVE_CURRENT
bullish_bounce: BULLISH + BELOW_CURRENT
bearish_bounce: BEARISH + ABOVE_CURRENT
bearish_breakout: BEARISH + BELOW_CURRENT

Webhook Events#

Triggers create_analysis webhook event with full analysis payload.

Bot Notifications#

Publishes to Redis channel bot:notification with otpId, serverId, userId, channelId.

What it is for: Create Analysis. Use this for chart-analysis content, metadata, drawings, and lifecycle management.
How to use it: Send a POST request to /v1/analysis/{communityId}/channels/{channelId} with the request body, query parameters, or multipart fields shown below. Authorization: Bearer <apiKey>. The key must be active, unexpired, scoped to the correct community, and include the permission required by this endpoint.
Successful response: HTTP 200. The body follows the endpoint schema; many integration endpoints wrap the useful payload under data with status and message.
Common error states:
400 invalid request body, query, ObjectId, pagination, file format, or missing required field.
401 missing, invalid, expired, or insufficient API key/token.
403 key is valid but cannot access this community/channel/user/resource, where supported by the service.
404 target resource, route, or community-scoped record was not found.
409 duplicate or conflicting state for create/update operations, where applicable.
500 unexpected Returning.AI service error.

Request

Authorization
JWT Bearer
Add the parameter
Authorization
to Headers
Example:
Authorization: ********************
or
Path Params

Body Params application/jsonRequired

Examples

Responses

🟢200OK
application/json
Analysis created successfully
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.returning.ai/v1/analysis/6502c9e514a3e564c5c09c0a/channels/656966caae59563fb291b324' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "sender": "pangray2025+t5@gmail.com",
    "metadata": {
        "direction": "BULLISH",
        "entryPlacement": "BELOW_CURRENT",
        "expiry": {
            "type": "HOURS",
            "hours": 24
        },
        "title": "GBPUSD Bullish Bounce from Support",
        "preferenceText": "Price bounced from [[support_zone:demand zone]]. Entry above [[entry_line:breakout level]] with target at [[target:resistance]].",
        "alternativeText": "If price breaks below support, analysis invalidated",
        "comments": "Watch for volume confirmation",
        "timeframe": "H1",
        "symbol": "GBP/USD"
    },
    "levels": {
        "pivot": {
            "price": 1.345,
            "clientObjectId": "pivot_main",
            "time": "2026-01-08T12:00:00Z"
        },
        "resistance": {
            "price": 1.35,
            "clientObjectId": "res_1",
            "time": "2026-01-08T14:00:00Z"
        },
        "support": {
            "price": 1.341,
            "clientObjectId": "sup_1",
            "time": "2026-01-08T10:00:00Z"
        }
    },
    "drawings": [
        {
            "type": "RECTANGLE",
            "clientObjectId": "support_zone",
            "points": [
                {
                    "time": "2026-01-08T00:00:00Z",
                    "price": 1.338
                },
                {
                    "time": "2026-01-09T00:00:00Z",
                    "price": 1.347
                }
            ],
            "style": {
                "fillColor": "#00FF33",
                "borderColor": "#00FF00",
                "lineWidth": 2
            }
        },
        {
            "type": "LINE",
            "clientObjectId": "entry_line",
            "points": [
                {
                    "time": "2026-01-08T00:00:00Z",
                    "price": 1.3485
                },
                {
                    "time": "2026-01-09T00:00:00Z",
                    "price": 1.3505
                }
            ],
            "startHead": "NONE",
            "endHead": "ARROW",
            "style": {
                "color": "#0000FF",
                "lineWidth": 2,
                "lineStyle": "DASHED"
            }
        },
        {
            "type": "HORIZONTAL_LINE",
            "clientObjectId": "target",
            "points": [
                {
                    "time": "2026-01-08T10:00:00Z",
                    "price": 1.355
                }
            ],
            "style": {
                "color": "#FF0000",
                "lineWidth": 2,
                "lineStyle": "SOLID"
            }
        }
    ],
    "idempotencyKey": "analysis_20250109_001"
}'
Response Response Example
200 - Success Example
{
    "status": "success",
    "message": "Analysis created successfully",
    "data": {
        "analysisId": "507f1f77bcf86cd799439022",
        "objectIdMap": {
            "pivot_main": "60d5ec49f1b2c8b1f8e4c8a1:8",
            "res_1": "60d5ec49f1b2c8b1f8e4c8a1:7",
            "sup_1": "60d5ec49f1b2c8b1f8e4c8a1:0",
            "res_int": "60d5ec49f1b2c8b1f8e4c8a1:5",
            "sup_int": "60d5ec49f1b2c8b1f8e4c8a1:2",
            "support_zone": "60d5ec49f1b2c8b1f8e4c8a2",
            "entry_line": "60d5ec49f1b2c8b1f8e4c8a3",
            "target": "60d5ec49f1b2c8b1f8e4c8a4"
        }
    }
}
Modified at 2026-05-18 17:03:37
Previous
Get redemption order status history
Next
Get Analysis
Built with