Chatous Join Match Queue API
Join the Chatous matchmaking queue with your own account so it can be paired with another user. Takes your connect.sid session cookie and optional interest tags. Returns the queue entry id (pass it to chatous-dequeue to leave the queue) and whether an entry was already active. You can be matched with a real person as soon as the call succeeds.
Last updated
How to call it
Send one POST to api.upapi.io/chatous-enqueue.post with your key in the X-Api-Key header and the parameters below as a JSON body. Each call spends 1 weighted unit of your monthly quota. The operation times out after 30 seconds. Responses are not cached; every call runs the operation.
POST https://api.upapi.io/chatous-enqueue.post
Chatous Join Match Queue API reference
Request parameters
- tags
- string — Interest tags to match on, in Chatous's own format. Empty matches on nothing in particular.
- proxyUrl
- string — Optional proxy URL.
- connectSid
- stringrequired — The account's connect.sid cookie value.
Response fields
- queueId
- stringrequired — The queue entry's id. Pass it to chatous-dequeue to release the entry. When
alreadyQueuedis true this is the id of the entry that BLOCKED this request, which may be a stranded one from an earlier session. - elapsedMs
- integerrequired
- enqueuedAt
- stringrequired
- alreadyQueued
- booleanrequired — True when Chatous refused a second entry because one is already active. Not an error: the account is in the queue, just not because of this call.
Example request and response
The example response is generated from this operation’s published output schema — it shows the shape and field names, not values from a recorded call.
{
"tags": "",
"connectSid": "example"
}{
"queueId": "example",
"elapsedMs": 1,
"enqueuedAt": "example",
"alreadyQueued": false
}Code snippets
cURL
curl -X POST https://api.upapi.io/chatous-enqueue.post \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{ "tags": "", "connectSid": "example" }'JavaScript
const response = await fetch('https://api.upapi.io/chatous-enqueue.post', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY',
},
body: JSON.stringify({
"tags": "",
"connectSid": "example"
}),
});
const data = await response.json();
console.log(data);Python
import requests
response = requests.post(
'https://api.upapi.io/chatous-enqueue.post',
headers={
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY',
},
json={
"tags": "",
"connectSid": "example"
},
)
print(response.json())Go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{ "tags": "", "connectSid": "example" }`)
req, _ := http.NewRequest("POST", "https://api.upapi.io/chatous-enqueue.post", bytes.NewBuffer(payload))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]any
json.Unmarshal(body, &result)
fmt.Println(result)
}PHP
<?php
$payload = json_encode([
'tags' => '',
'connectSid' => 'example',
]);
$ch = curl_init('https://api.upapi.io/chatous-enqueue.post');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'x-api-key: YOUR_API_KEY',
],
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
var_dump($data);Ruby
require 'net/http'
require 'uri'
require 'json'
uri = URI('https://api.upapi.io/chatous-enqueue.post')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Post.new(uri.path)
request['Content-Type'] = 'application/json'
request['x-api-key'] = 'YOUR_API_KEY'
request.body = { "tags": "", "connectSid": "example" }.to_json
response = http.request(request)
puts JSON.parse(response.body)Java
import okhttp3.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;
OkHttpClient client = new OkHttpClient();
ObjectMapper mapper = new ObjectMapper();
String json = "{ \"tags\": \"\", \"connectSid\": \"example\" }";
RequestBody body = RequestBody.create(json, MediaType.get("application/json"));
Request request = new Request.Builder()
.url("https://api.upapi.io/chatous-enqueue.post")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("x-api-key", "YOUR_API_KEY")
.build();
try (Response response = client.newCall(request).execute()) {
Map<?, ?> result = mapper.readValue(response.body().string(), Map.class);
System.out.println(result);
}C#
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var payload = JsonSerializer.Deserialize<object>("{ \"tags\": \"\", \"connectSid\": \"example\" }");
var response = await client.PostAsJsonAsync("https://api.upapi.io/chatous-enqueue.post", payload);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);Frequently asked questions
How much does the Chatous Join Match Queue API cost per call?
Each call spends 1 weighted unit of your plan's monthly quota. Full pricing is at https://upapi.io/pricing.
How do I authenticate to the Chatous Join Match Queue API?
Send your key in the X-Api-Key header. A free guest key is available without creating an account.
Are Chatous Join Match Queue API responses cached?
No — every call runs the operation live; responses are not cached.