> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oceanx.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete own price alert

> Owner comes exclusively from the bearer key. Caller owner fields are rejected. Scopes are opt-in and independent of md.read and trading authority. Every request consumes the existing REST key limiter. URLs <=8 KiB and bodies <=32 KiB; no-store and credential-free CORS including PATCH/Idempotency-Key/If-Match. Uses the existing alert-eval service owner guard and durable journal. This adapter preserves its draft/arm/reviewed-replacement lifecycle and configVersion semantics. New configs are USD price crossing alerts with in-app delivery and zero hysteresis; reads also project existing app-native configurations. No webhook association/delivery. Bodyless conditional deletion maps to the service's durable cancellation. Returns 204; canceled history remains visible. Replaying the same key/revision returns 204; a new key on an already canceled alert can return 409.



## OpenAPI

````yaml https://www.oceanx.trade/api/v1/openapi.json delete /api/v1/price-alerts/{id}
openapi: 3.1.0
info:
  title: OceanX Developer API
  version: 1.0.0
  description: >-
    Public API for the OceanX trading platform. Currently in beta and free to
    use while in beta.


    This spec covers the **spot quote** domain. The wallet **tracker** and
    **perps** domains are documented at https://docs.oceanx.trade/api/overview
    and are not yet described here.
  contact:
    url: https://docs.oceanx.trade
  termsOfService: https://www.oceanx.trade/legal/terms
  license:
    name: Proprietary
    url: https://www.oceanx.trade/legal/terms
servers:
  - url: https://www.oceanx.trade
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Router
    description: >-
      Read-only Raptor route quotes and public Solana transaction status. Build
      and execution remain separately gated.
  - name: Market Data
    description: Read-only OceanX market context sourced and cached by VM producers.
  - name: Spot
    description: >-
      Executable Solana swap quotes off OceanX's own router, and the exit
      checker that reports whether a whole position can be sold.
  - name: Callouts
    description: >-
      Public token callouts — user-posted token calls with live click/volume
      attribution stats. Read-only.
  - name: Copy Trading
    description: Key-owner follow, fill and PnL reads; no execution authority.
  - name: Price Alerts
    description: Key-owner alert management through the existing evaluator; no webhooks.
paths:
  /api/v1/price-alerts/{id}:
    delete:
      tags:
        - Price Alerts
      summary: Delete own price alert
      description: >-
        Owner comes exclusively from the bearer key. Caller owner fields are
        rejected. Scopes are opt-in and independent of md.read and trading
        authority. Every request consumes the existing REST key limiter. URLs
        <=8 KiB and bodies <=32 KiB; no-store and credential-free CORS including
        PATCH/Idempotency-Key/If-Match. Uses the existing alert-eval service
        owner guard and durable journal. This adapter preserves its
        draft/arm/reviewed-replacement lifecycle and configVersion semantics.
        New configs are USD price crossing alerts with in-app delivery and zero
        hysteresis; reads also project existing app-native configurations. No
        webhook association/delivery. Bodyless conditional deletion maps to the
        service's durable cancellation. Returns 204; canceled history remains
        visible. Replaying the same key/revision returns 204; a new key on an
        already canceled alert can return 409.
      operationId: deletePriceAlert
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[!-~]+$
          description: >-
            Per owner + public method/path + key. Same body replays the durable
            service result; changed body returns 409. Service retains records
            180 days (at least 24 hours).
        - name: If-Match
          in: header
          required: true
          schema:
            type: string
          description: >-
            Positive configVersion or quoted ETag. Guards config edits; service
            state transitions do not increment configVersion.
      responses:
        '204':
          description: Owned alert canceled. No response body.
        '400':
          description: >-
            Malformed input, unknown/repeated field, invalid cursor or altered
            cursor filters/owner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '401':
          description: >-
            Missing, revoked, invalid or disabled API key. No session-cookie
            fallback.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '403':
          description: Key lacks this operation's explicit scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '404':
          description: >-
            Owned resource not found. Foreign and missing IDs are
            indistinguishable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '409':
          description: >-
            Idempotency conflict, alert capacity, terminal alert or invalid
            state transition.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '410':
          description: Cursor expired or lost; restart pagination. Alert may be expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '412':
          description: If-Match no longer matches configVersion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '422':
          description: >-
            Source exceeds the snapshot budget or qualified alert price/delivery
            capability is unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '428':
          description: Idempotency-Key or required If-Match is missing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '429':
          description: REST or alert-service quota exceeded; Retry-After provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '500':
          description: Existing API-key verification dependency failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
        '503':
          description: >-
            Admission, store or alert service unavailable. No fabricated
            empty/zero success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnedApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    OwnedApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          required:
            - code
            - message
          additionalProperties: false
        requestId:
          type: string
      required:
        - error
        - requestId
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An OceanX API key, created in the app under Settings → Developer API.
        Send it as `Authorization: Bearer ox_live_…`. Required scopes are
        operation-specific: market reads use md.read, tracker uses tracker.read,
        copy reads use copy.read, and alert operations use alerts.read or
        alerts.write. New scopes require explicit selection and grant no trading
        authority. Existing perps operations retain their documented scopes.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.