GoAPI
HomeDashboard
HomeDashboard
Join Discord
  1. GPTs API
  • Get Started
  • Endpoints
    • Flux
      • Flux API with Redux Variation, Fill, Inpaint and Outpaint
      • Flux with LoRA and Controlnet
      • Available LoRA and Controlnet
      • Create Task
        • Text to Image
        • Image to Image
        • Kontext
      • Get Task
    • Gemini
      • Gemini-2.5-flash-image
      • Nano Banana Pro
      • Nano Banana 2
      • Get Task
    • Veo3
      • Veo3 Text to Video
      • Veo3 Image to Video
      • Veo3.1 Text to Video
      • Veo3.1 Image to Video
      • Get Task
    • Sora2
      • Sora2-preview Text to Video
      • Sora2 Text to Video
      • Sora2-Pro Text to Video
      • Sora2 Remove Watermark
      • Get Task
    • Omni Human
      • Omni Human 1.5
      • Get Task
    • Seedance
      • Moderation and Penalty
      • Seedance 2 preview
      • Seedance 2
      • Video Watermark Remover
      • Get Task
    • Seedream
      • Seedream 5 Lite
      • Get Task
    • Qwen Image
      • Text to Image
      • Image Edit
      • Get Task
    • Z-Image
      • Text to Image
      • Get Task
    • AI Hug
      • Create Task
      • Get Task
    • Midjourney
      • Detailed Explaination on Midjourney Task Result
      • GoAPI Penalties on Midjourney Usage
      • Midjourney V7 Instructions
      • Create Task
        • Imagine
        • Upscale
        • Variation
        • Reroll
        • Describe
        • Seed
        • Blend
        • Inpaint
        • Outpaint
        • Pan
      • Cancel Task
        • Cancel Task
        • Cancel Tasks
      • Get Task
    • Faceswap
      • Multi Faceswap
      • Image Faceswap
      • Video Faceswap
      • Get Task
    • Suno
      • Music
      • Lyrics
      • Get Task
    • Song (Udio)
      • Song API Task Creation Examples(Udio and Suno)
      • [Udio] Song Extend
      • Create Task
      • [Udio] Generate Lyrics
      • Get Task
    • TTS
      • Zeroshot Text-to-Speech F5-TTS
      • Get Task
    • DiffRhythm
      • Generate an Audio
      • Get Task
    • Ace Step
      • Create Task
        • Text to Audio
        • Audio to Audio
        • Audio Edit
        • Audio Extend
      • Get Task
    • Joycaption
      • Image Caption
      • Get Task
    • Mmaudio
      • Generate Audio
      • Get task
    • Dream Machine
      • Create Task
      • Get Task
    • Kling
      • Lipsync API Examples
      • Motion Brush Example
      • Kling Elements Video Generation API
      • Kling Effects Video Generation
      • Cancel Task
        • Cancel Task
        • Cancel Tasks
      • Create Task
      • Get Task
      • Kling Virtual Try-On
      • Kling Effects
      • Kling Sound
      • Kling Avatar
      • Kling Motion Control
      • Kling Turbo
      • Kling 3.0
    • Kling Omni
      • Kling o1
      • Kling 3.0 omni
      • Get Task
    • Hailuo
      • Generate Video
      • Get Task
    • Hunyuan Video
      • How to Make a Hunyuan API Call
      • Available Hunyuan Lora models
      • Generate Video
      • Get Task
    • WanX
      • Generate WanX Task with LoRA Using GoAPI
      • Available LoRA Types for Wanx
      • Use Cases for Wanx LoRA
      • Use Cases for Wanx Control Camera
      • Create Task
      • Get Task
    • Wan
      • Wan2.6 Text to Video
      • Wan2.6 Image to Video
      • Get Task
    • Skyreels
      • Create Task
      • Get Task
    • Framepack
      • Create Task
      • Get Task
    • Trellis
      • Trellis Create Task
      • Trellis2 Create Task
      • Get Task
    • GPTs API
      • ChatGPT Account Configuration
      • Examples for files upload into conversations in GPTs API
      • Conversation API
        • Create conversation
        • Add message to conversation
        • Upload file to conversation
        • Download file from code interpretor's sandbox
        • Download file from conversation
        • Get Task
    • LLM
      • LLM API | Basic Completions
      • Transcription API
      • TTS API
      • Embeddings API
      • Dall E 3 API
    • Account Management
      • Account Notification Webhook
      • Account Info
      • Task List Info
      • User Task History
    • Tools
      • File Upload API
      • Remove Background API
      • Remove Background-Get task
      • Segment With Prompt API
      • Segment with Prompt-Get task Copy
      • Image Upscale(Super Resolution) API
      • Image Upscale-Get task
      • Video Upscale
      • Video Upscale-Get task
      • Video Remove Background
      • Video Remove Background-Get task
    • GPT-image
      • GPT-image API
    • Seedance 2
  • Resources
    • Pricing Plan
    • Unified API Schema
    • Unified API Webhook
    • Technical Questions
    • Bulk Generation Service
    • Change Log
    • Common Error Message
    • Output Storage
    • Dashboard Manual
      • BYOA | Back-up Account
      • BYOA | Debug Checklist
      • BYOA | Connected Account Status
    • Announcements
      • GoAPI 2025 January 1st Pricing Update
      • The discontinued support for midjourney
      • Sunsetting Suno
  • Schemas
    • Sample Schemas
      • Pet
      • Category
      • Tag
    • Schemas
      • Motion Brush
      • Float2 Point
      • Control Points
      • txt2video-1.3b
      • txt2video-14b
      • txt2video-14b-lora
      • img2video-14b
      • img2video-14b-lora
      • img2video-14b-keyframe
      • img2video-14b-control-camera
      • wan22-txt2video-14b
      • wan22-img2video-14b
      • ErrorResponse
      • Trellis API/text-to-3D
      • Trellis API/image-to-3D
      • Trellis2 API/image-to-3D
      • Create Task
      • VideoGenerationResponse
      • camera control
      • Cancel Params
      • TaskConfig
      • TaskResponse
    • Response
      • Unified-Task-Response
    • RequestBodies
      • Unified-Task-Request-Body
    • config
    • control_net_setting
    • lora_setting
    • Kling omni multi shot
  1. GPTs API

Examples for files upload into conversations in GPTs API

Starting a Conversation#

In order to upload files using GPTs API, you need to a new conversation using gpt-4o, then to get the conversationId from the event-stream.
1.
Link to doc https://www.goapi.ai/docs/gpts-api
2.
Call the endpoint with the following sample cURL code
3.
Then data from the event stream is as follows:
data: {"message": {"id": "b63eacbc-a225-4dee-9498-eb62a5950786", "author": {"role": "assistant", "name": null, "metadata": {}}, "create_time": 1727273868.262348, "update_time": null, "content": {"content_type": "text", "parts": ["Hello! How can I assist you today?"]}, "status": "in_progress", "end_turn": null, "weight": 1.0, "metadata": {"citations": [], "content_references": [], "gizmo_id": null, "message_type": "next", "model_slug": "gpt-4o", "default_model_slug": "gpt-4o", "pad": "AAAAAAAAAAAAAAAAAAAAAAAAAA", "parent_id": "8cc00bc8-c9d3-4362-841e-ffbed24aca60", "model_switcher_deny": []}, "recipient": "all", "channel": null}, "conversation_id": "66f41b8c-0d58-800b-8dfb-da993cc5fbfb", "error": null}
4.
Then, the user should upload a file using this conversation_id (66f41b8c-0d58-800b-8dfb-da993cc5fbfb), Content-Type should be form-data.
The response should be below:
{
    "code": 200,
    "data": {
        "file_name": "DINSTXPN8D]HG280Y(BCX`2.png",
        "file_id": "file-gEHVo1KU9irGjZCbdARYUFy2",
        "file_size": 121851
    },
    "message": "success"
}
In order to use this file In the following conversations, we will need to start a conversation using this file. Depending the file format, the API call will differ.

Creating a conversation with file#

We will use the previous endpoint to start the conversation with the file, with the same conversationID.

Conversation with image files#

Image file is the most unique file format to be used in the conversation, since only for this file format would we use multimodal_text of content_type (perhaps it is due to the web version of ChatGPT would also need to displayed the uploaded picture as well?).
{
    "content": {
        "content_type": "multimodal_text",
        "parts": [
            {
                "content_type": "image_asset_pointer",
                "asset_pointer": "file-service://file-gEHVo1KU9irGjZCbdARYUFy2",
                "size_bytes": 121851,
                "width": 128,
                "height": 128
            },
            "describe this image"
        ]
    },
    "metadata": {
        "attachments": [
            {
                "name": "DINSTXPN8D]HG280Y(BCX`2.png",
                "id": "file-gEHVo1KU9irGjZCbdARYUFy2",
                "size": 121851,
                "mimeType": "image/png",
                "width": 128,
                "height": 128
            }
        ]
    }
}
To note:
1.
“asset_pointer” and its values (which is the same with the value for “id” within “metadata”)
2.
“mimeType”
3.
“parts” and its associated content.
If you need to use multiple image files, you could upload multiple times, as shown below.

      "content": {
        "content_type": "multimodal_text",
        "parts": [
          {
            "content_type": "image_asset_pointer",
            "asset_pointer": "file-service://file-otNCSKxKA5LwzE839wbJZbTc",
            "size_bytes": 57766,
            "width": 271,
            "height": 325
          },
          {
            "content_type": "image_asset_pointer",
            "asset_pointer": "file-service://file-HO3i69pHaQZEiWdKzUAxAr9M",
            "size_bytes": 8205,
            "width": 128,
            "height": 128
          },
          "Test_test_test"
        ]
      },
      "metadata": {
        "attachments": [
          {
            "id": "file-otNCSKxKA5LwzE839wbJZbTc",
            "size": 57766,
            "name": ")JUM75}DS$IG`OESMUGD3Q8.png",
            "mime_type": "image/png",
            "width": 271,
            "height": 325
          },
          {
            "id": "file-HO3i69pHaQZEiWdKzUAxAr9M",
            "size": 8205,
            "name": "mai.png",
            "mime_type": "image/png",
            "width": 128,
            "height": 128
          }
        ]
      }

Conversation with txt files#

This largely follows the same steps as the image file workflow.
With regarding to file_size_token, as per our test, the workflow should work without this parameter. Thus we are not going to check for this parameter specifically.
You need to find the corresponding mime_type by using ChatGPT Web Version, and using Developer’s Tool (pressing F12 for windows users) to check for the metadata within conversation.
{ 
    "content": {
        "content_type": "text",
        "parts": [
            "describe this file"
        ]
    },
    "metadata": {
        "attachments": [
            {
                "name": "hello.txt",
                "id": "file-WHgV7URVkoI7iJnpgg0dVU2D",
                "size": 12,
                //"file_size_tokens": 4,
                "mime_type": "text/plain"
            }
        ]
    }
}

Conversation with PDF files#

{
    "content": {
        "content_type": "text",
        "parts": [
            "describe this file"
        ]
    },
    "metadata": {
        "attachments": [
            {
                "name": "hello.pdf",
                "id": "file-WHgV7URVkoI7iJnpgg0dVU2D",
                "size": 12,
                "mime_type": "application/pdf"
            }
        ]
    }
}

Conversation with word files#

{
    "content": {
        "content_type": "text",
        "parts": [
            "describe this file"
        ]
    },
    "metadata": {
        "attachments": [
            {
                "name": "hello.docx",
                "id": "file-WHgV7URVkoI7iJnpgg0dVU2D",
                "size": 12,
                "mime_type": "application/pdf"
            }
        ]
    }
}

Conversation with excel files#

{
    "content": {
        "content_type": "text",
        "parts": [
            "describe this file"
        ]
    },
    "metadata": {
        "attachments": [
            {
                "name": "work.xlsx",
                "id": "file-WHgV7URVkoI7iJnpgg0dVU2D",
                "size": 121,
                "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
            }
        ]
    }
}

Subsequent Conversations#

Because GPTs has "conversations", thus if you have already incorporated a file into a conversation, you no longer need to do it again for the same conversation.
You don’t need to use the metadata parameter either.
{
    "parent_message_id": "",
    "content": {
        "content_type": "text",
        "parts": [
          "What is the picture I just sent"
        ]
    }
}
Modified at 2024-10-17 08:52:15
Previous
ChatGPT Account Configuration
Next
Create conversation