Returning.AI
  1. Analysis API
Returning.AI
  • Returning.AI
    • APIs
      • Authentication
      • System API
        • Auth
          • Secure Auth
          • register
          • verify email
          • login
        • Server
          • create new server
          • get my servers
          • update server
          • channel list of server
        • Channel
          • get channels list
          • create new channel
          • update channel
          • delete channel
        • Role
          • role list of server
          • create new role
          • update role
          • delete role
          • get role list of user on a server
          • add role to a user on a server
          • remove role from a user on a server
        • Badge
          • get badges list
          • create new badge
          • update badge
          • delete badge
          • award badge to user
          • remove badge from user
      • Application API
        • Community Users
          • Get community users
          • Get user
        • User Fields
          • Get All User Fields
          • Get Specific User Field
          • Create Custom User Field
          • Update Custom User Field
          • Delete Custom User Field
        • User Field Histories
          • 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
      • Integration API
        • Users
          • Get Users with Filters
          • Create New User
          • Get User Data
          • Manage User Account
          • Get User Gamification History
          • Get User Gamification Stats
          • Bulk Import
          • Bulk Update
          • Get All Bulk Update
          • Check Bulk Update Status
          • Check Bulk Update Details
        • Messages
          • Get Messages
          • Send Message
          • Reply Message
          • React Message
        • Channels
          • Get Channels List
        • Xp Settings
          • Get Tier Info
        • Gamifications
          • Get User Gamification Logs
        • Analysis API
          • Create Analysis
            POST
          • Get Analysis
            GET
          • Update Analysis
            PATCH
          • Delete Analysis
            DELETE
          • List Analyses
            GET
          • Append Drawings
            POST
        • Redemption Transactions
          • Update redemption transaction status
        • Streak Logs
          • Get Streak Logs
    • Channels
      • Iframe
    • 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
    • Features
  • Schemas
    • Analysis
      • UpdateAnalysisRequest
      • AppendDrawingsRequest
      • CreateAnalysisResponse
      • GetAnalysisResponse
      • UpdateAnalysisResponse
      • AppendDrawingsResponse
      • AnalysisMetadata
      • Expiry
      • Levels
      • LevelEntry
      • Drawing
      • HorizontalLineDrawing
      • LineDrawing
      • RectangleDrawing
      • ParallelDrawing
      • FibonacciRetracementDrawing
      • Coordinate
      • DrawingStyle
      • AnalysisDetail
      • AnalysisSummary
      • CreateAnalysisRequest
      • ListAnalysesResponse
    • Sample Schemas
      • Pet
      • Category
      • Tag
    • Schemas
      • 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
    • Outgoing webhooks
      • Purchased store item
      • New message posted to channel
      • User visits server
      • User join server
      • ErrorResponse
  1. Analysis API

Create Analysis

POST
/apis/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.

Request

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

Body Params application/jsonRequired

Example
{
    "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"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://integration.returning.ai/apis/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"
}'

Responses

🟢200
application/json
Analysis created successfully
Body

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"
        }
    }
}
🟠400BadRequest
🟠401Unauthorized
🔴500InternalServerError
Modified at 2026-01-09 13:40:34
Previous
Get User Gamification Logs
Next
Get Analysis