tastytradeDeveloper Docs
Legacy ↗

API Reference / Quote Alerts

Create Quote Alert

postQuoteAlerts
post/quote-alerts

Base URL: https://api.cert.tastyworks.com (Sandbox) · https://api.tastyworks.com (Production)

Creates a quote alert for a symbol. Provide a `field` (`Last`, `Bid`, `Ask`, or `IV`), an `operator` (`>` or `<`), the `symbol`, and a `threshold` the watched field is compared against. Keys are dasherized and the request body must be JSON.

Code samples

curl -X POST 'https://api.cert.tastyworks.com/quote-alerts' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'User-Agent: tastytrade-docs-example/1.0' \
  -H 'Content-Type: application/json' \
  -d '{
  "dx-symbol": "AAPL",
  "expires-at": "2026-12-31T23:59:59.000Z",
  "field": "Last",
  "instrument-type": "Equity",
  "operator": ">",
  "symbol": "AAPL",
  "threshold": "150.25",
  "threshold-numeric": "150.25"
}'

Parameters

No parameters.

Request bodyrequiredapplication/json

Example

{
  "dx-symbol": "AAPL",
  "expires-at": "2026-12-31T23:59:59.000Z",
  "field": "Last",
  "instrument-type": "Equity",
  "operator": ">",
  "symbol": "AAPL",
  "threshold": "150.25",
  "threshold-numeric": "150.25"
}

Schema

  • dx-symbolstring

    The DXLink streamer symbol for the instrument.

    example: "AAPL"

  • expires-atstring

    Optional expiration time for the alert.

    example: "2026-12-31T23:59:59.000Z"

  • fieldrequiredstring

    The quote field to watch. One of `Last`, `Bid`, `Ask`, or `IV` (implied volatility).

    enum: Last, Bid, Ask, IV

    example: "Last"

  • instrument-typestring

    The type of instrument the alert is for, such as `Equity` or `Equity Option`.

    example: "Equity"

  • operatorrequiredstring

    The comparison operator applied between the watched `field` and the `threshold`. Either `>` (greater than) or `<` (less than).

    enum: >, <

    example: ">"

  • symbolrequiredstring

    The tastytrade symbol for the instrument to watch, for example an equity symbol like `AAPL`.

    example: "AAPL"

  • thresholdrequiredstring

    The threshold value the watched `field` is compared against, sent as a string-decimal.

    example: "150.25"

  • threshold-numericstring

    Optional numeric form of the threshold value.

    example: "150.25"

Responses

201The newly created quote alert.application/json

Example response

{
  "data": {
    "alert-external-id": "12345",
    "completed-at": "2026-06-05T18:12:43.000Z",
    "created-at": "2026-06-01T14:30:00.000Z",
    "dismissed-at": "2026-06-06T08:00:00.000Z",
    "dx-symbol": "AAPL",
    "expired-at": "2026-12-31T23:59:59.000Z",
    "expires-at": "2026-12-31T23:59:59.000Z",
    "field": "Last",
    "instrument-type": "Equity",
    "operator": ">",
    "provider": "string",
    "symbol": "AAPL",
    "threshold": "150.25",
    "threshold-numeric": "150.25",
    "triggered-at": "2026-06-05T18:12:43.000Z",
    "user-external-id": "abc123"
  },
  "context": "/quote-alerts"
}

Schema

  • datarequiredobject (QuoteAlertDeserializer)

    A quote alert belonging to a user. Describes the watched instrument and condition along with timestamps recording the alert's lifecycle (created, triggered, completed, expired, or dismissed).

    • alert-external-idstring

      Unique external identifier for the alert. Use this value as the `alert_external_id` path parameter when cancelling the alert.

      example: "12345"

    • completed-atstring <date-time>

      ISO-8601 timestamp when the alert finished its lifecycle (for example after it triggered).

      example: "2026-06-05T18:12:43.000Z"

    • created-atstring <date-time>

      ISO-8601 timestamp when the alert was created.

      example: "2026-06-01T14:30:00.000Z"

    • dismissed-atstring <date-time>

      ISO-8601 timestamp when the alert was dismissed by the user, if applicable.

      example: "2026-06-06T08:00:00.000Z"

    • dx-symbolstring

      The DXLink streamer symbol for the watched instrument.

      example: "AAPL"

    • expired-atstring <date-time>

      ISO-8601 timestamp when the alert expired without triggering, if applicable.

      example: "2026-12-31T23:59:59.000Z"

    • expires-atstring

      The configured expiration time for the alert.

      example: "2026-12-31T23:59:59.000Z"

    • fieldstring

      The quote field the alert watches, such as `Last`, `Bid`, `Ask`, or `IV`.

      example: "Last"

    • instrument-typestring

      The type of instrument the alert is for, such as `Equity`.

      example: "Equity"

    • operatorstring

      The comparison operator between the watched field and the threshold, either `>` or `<`.

      example: ">"

    • providerstring

      The market-data provider that supplies the quotes for this alert.

    • symbolstring

      The tastytrade symbol for the watched instrument.

      example: "AAPL"

    • thresholdstring

      The threshold value the watched field is compared against, as a string-decimal.

      example: "150.25"

    • threshold-numericstring <decimal>

      Numeric form of the threshold value. Decimal value serialized as a JSON string (e.g. "150.25").

      example: "150.25"

    • triggered-atstring <date-time>

      ISO-8601 timestamp when the alert condition was first met and the alert fired.

      example: "2026-06-05T18:12:43.000Z"

    • user-external-idstring

      External identifier of the user that owns the alert.

  • contextrequiredstring

    example: "/quote-alerts"

401Missing, expired, or invalid access token, or a missing/malformed `User-Agent` header. Send `Authorization: Bearer <token>` (tokens last 15 minutes) and a `User-Agent` like `my-app/1.0`.application/json

Example response

{
  "error": {
    "code": "unauthorized",
    "message": "No valid access token was provided; access tokens expire after 15 minutes."
  }
}

Schema

  • errorrequiredobject
    • coderequiredstring

      Machine-readable error code (see the Error reference).

    • messagerequiredstring

      Human-readable explanation.

    • errorsarray<object>{3 fields}

      Present for multi-error / validation failures; one entry per problem.

422The alert could not be created — for example a missing required field or an unrecognized `field`/`operator` value. The reason is in the response JSON's `error.message`.application/json

Example response

{
  "error": {
    "code": "preflight_check_failure",
    "message": "One or more preflight checks failed",
    "errors": [
      {
        "code": "preflight_check_failure",
        "message": "A specific validation failed for this order."
      }
    ]
  }
}

Schema

  • errorrequiredobject
    • coderequiredstring

      Machine-readable error code (see the Error reference).

    • messagerequiredstring

      Human-readable explanation.

    • errorsarray<object>{3 fields}

      Present for multi-error / validation failures; one entry per problem.

429Too many requests in a short period. Back off exponentially and reduce your request rate.application/json

Example response

{
  "error": {
    "code": "string",
    "message": "string",
    "errors": [
      {
        "code": "string",
        "message": "string",
        "domain": "string"
      }
    ]
  }
}

Schema

  • errorrequiredobject
    • coderequiredstring

      Machine-readable error code (see the Error reference).

    • messagerequiredstring

      Human-readable explanation.

    • errorsarray<object>{3 fields}

      Present for multi-error / validation failures; one entry per problem.

Related

Agents: this page is also Markdown (with the embedded OpenAPI definition) — append .md or send Accept: text/markdown. Index at /llms.txt.