Skip to main content
POST
Place orders
Envía una o más órdenes. El endpoint acepta un lote: los resultados por orden vuelven en data.createdSessions, de forma posicional respecto a tu array orders de entrada. Cada entrada es un resultado correcto { matched, unmatched } o un fallo { error, errorType }.

Solicitud

POST /session/v3/place

Campos de la orden

Tipos de orden

limit

El tipo de orden por defecto. Se ejecuta contra cualquier liquidez coincidente a tu precio o mejor como taker (con comisión de taker) y deja el resto en el libro como maker. Una orden limit puede quedar totalmente cruzada, totalmente en espera, o parcialmente cruzada con el resto en espera.

post

Crea una oferta en espera. Si la orden se cruzaría con liquidez existente al colocarla, el servidor la rechaza (rejected_order_type_rules, p. ej. "post order cannot have matches").

postArb

Se comporta como post, pero puedes colocar incluso cuando la orden se cruzaría, solo si tus cuotas americanas están dentro del 1% de las cuotas de la orden en espera con la que te cruzarías. Si la diferencia de precio es mayor al 1%, la colocación se rechaza. Ejemplos:
  • Mejor oferta +100 y colocas +100 — post se rechaza (se cruzaría); postArb está permitido.
  • Mejor oferta +200 — postArb a +190 se rechaza (demasiado lejos de +200). Alrededor de +198 está en el borde de la banda del 1% frente a +200.
  • Mejor orden −200 — la banda se extiende hasta alrededor de −202 en el lado negativo (la misma regla del 1%).
  • Con +100 en el libro, −101 es el límite de referencia en el otro lado para la tolerancia del 1%.
postArb evita las comisiones de taker de un cruce normal: no se te cobran comisiones de taker en este flujo como sí ocurriría si tomases liquidez en espera como taker. Las órdenes colocadas como postArb se marcan con isPostArb: true en sus actualizaciones del feed de usuario y del feed de precios; el campo se omite en los demás tipos de orden. La propia respuesta de colocación no incluye el indicador.

fillAndKill

Ejecuta de inmediato como taker contra el tamaño disponible a tu precio o mejor y cancela el resto. Un fillAndKill nunca queda en el libro. Un cruce parcial es un resultado correcto: si envías bet: 1000 y solo hay 400deliquidezcruzable,setecruzapor400 de liquidez cruzable, se te cruza por 400 y se cancela el resto de $600: la respuesta es un éxito, no un error. La orden solo se rechaza (rejected_order_type_rules, "fill and kill has no matches") cuando no hay liquidez cruzable en absoluto. Consulta los escenarios de Fill And Kill en los ejemplos más abajo.

fillOrKill

Todo o nada. Tu bet entero debe cruzar de inmediato a tu precio o mejor; de lo contrario se rechaza toda la orden, incluidos los cruces que hubiera hecho por el camino, que se revierten. Un fillOrKill nunca queda en el libro y nunca te deja parcialmente cruzado. Úsalo cuando una posición parcial sea peor que ninguna posición, por ejemplo cuando la orden es una pata de una cobertura que solo puedes ejecutar por completo. Los rechazos llevan errorType: rejected_order_type_rules con uno de dos mensajes, que distinguen «no había nada» de «no había suficiente»:
  • "fill or kill has no matches" — no hay liquidez cruzable a tu precio.
  • "fill or kill matched but not fully" — parte de la liquidez cruzó, pero no tu tamaño completo. Esos cruces se revirtieron.
Un residual de **10omenos∗∗cuentacomocompleto:un‘fillOrKill‘de10 o menos** cuenta como completo: un `fillOrKill` de 1,000 que cruza 992tieneeˊxito,porquelos992 tiene éxito, porque los 8 que no se pudieron cruzar están por debajo del tamaño mínimo que podría quedar en el libro. Un residual mayor de $10 rechaza la orden.

Respuesta

array
Resultados por orden, en el mismo orden posicional que el array orders de entrada. Cada entrada es una colocación correcta o un error.

Ejemplos

Escenario 1 — Órdenes que cruzan sin liquidez restante

Tres órdenes que cruzan al instante con la liquidez disponible.

Escenario 2 — Orden limit con liquidez restante

Una orden limit de 300 que cruza parcialmente y deja el resto en espera.

Escenario 3 — Fill and Kill, cruce completo

Escenario 4 — Fill and Kill, sin cruce

Un fillAndKill sin cruce devuelve un error por orden.

Escenario 5 — Fill or Kill, liquidez insuficiente

fillOrKill es el homólogo de todo o nada de fillAndKill. Donde un fillAndKill de 1,000contra1,000 contra 400 de liquidez cruza 400ycancelaelresto,un‘fillOrKill‘rechazatodalaordenyrevierteesos400 y cancela el resto, un `fillOrKill` rechaza toda la orden y revierte esos 400: nunca te deja parcialmente cruzado.
Sin liquidez cruzable en absoluto, la misma orden se rechaza con "fill or kill has no matches" en su lugar.

Escenario 6 — postArb frente a post cuando el libro cruzaría

post rechaza una orden que cruzaría liquidez en espera (por ejemplo, mejor oferta +100 e intentas colocar +100). postArb permite esa situación cuando tus cuotas están dentro del 1% de la orden con la que te cruzarías, de modo que la misma colocación a +100 puede tener éxito como postArb y evitas las comisiones de taker que pagarías en un cruce normal. Si tu precio está demasiado lejos de la cotización en espera (p. ej. mejor oferta +200 pero envías +190), postArb se rechaza.

Escenario 7 — moneyline1x2 (fútbol a tres vías)

moneyline1x2 es el mercado de fútbol a tres vías — local / visitante / empate — colocado como una apuesta yes/no sobre el resultado indicado por market. Abajo, yes sobre el empate a +250.
Para apostar a que el equipo local no gana, envía side: "no" y pon market al id del participante local.

Retraso en vivo

Las órdenes colocadas en un juego marcado como live siguen estas reglas:
  1. Si la orden no cruza ninguna liquidez existente, se coloca de inmediato.
  2. Si la orden sí cruza liquidez existente, incurre en un retraso antes de la ejecución.
  3. Distintas ligas tienen distintos periodos de retraso en vivo:
    • NFL, UFCMMA, NCAAF — 3 segundos.
    • NCAAB, NBA — 5 segundos.
    • ATP, WTA — 8 segundos.
    • Por defecto — 10 segundos.
  4. Tras el retraso, la orden intenta ejecutarse:
    • Si las cuotas mejoran, cruza al instante.
    • Si las cuotas empeoran, no cruza.

Errores por orden

Ejemplo con varias colocaciones, algunas con error:

Autorizaciones

Authorization
string
header
requerido

Pass your auth token in the Authorization header. The Bearer prefix is optional; the server also accepts a signed auth cookie or a token field in the request body.

Cuerpo

application/json
orders
object[]
requerido

Respuesta

Per-order results (positional with input).

data
object