# Place order

## POST /v1/swaps/amm/place-order

> Place a swap order with an AMM (DotSwap, RunesDex) to receive an unsigned PSBT to sign.

```json
{"openapi":"3.0.3","info":{"title":"SecretKeyLabs API","version":"1.0.0"},"tags":[],"servers":[{"url":"https://api.secretkeylabs.io"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"x-api-key","in":"header"}}},"paths":{"/v1/swaps/amm/place-order":{"post":{"tags":["Swaps"],"description":"Place a swap order with an AMM (DotSwap, RunesDex) to receive an unsigned PSBT to sign.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerCode":{"type":"string"},"from":{"type":"object","properties":{"ticker":{"type":"string"},"protocol":{"anyOf":[{"type":"string","enum":["runes"]},{"type":"string","enum":["btc"]}]}},"required":["ticker","protocol"]},"to":{"type":"object","properties":{"ticker":{"type":"string"},"protocol":{"anyOf":[{"type":"string","enum":["runes"]},{"type":"string","enum":["btc"]}]}},"required":["ticker","protocol"]},"sendAmount":{"type":"string"},"receiveAmount":{"type":"string"},"slippage":{"type":"number"},"feeRate":{"type":"number"},"btcAddress":{"type":"string"},"btcPubKey":{"type":"string"},"ordAddress":{"type":"string"},"ordPubKey":{"type":"string"},"identifier":{}},"required":["providerCode","from","to","sendAmount","receiveAmount","slippage","feeRate","btcAddress","btcPubKey","ordAddress","ordPubKey"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"orderId":{"type":"string"},"identifier":{"type":"string"},"expiresInMilliseconds":{"nullable":true,"type":"number"},"psbt":{"type":"string"}},"required":["expiresInMilliseconds","psbt"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"description":"Invalid input","type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"description":"Not found","type":"string"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"description":"Rate limit exceeded","type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"description":"Internal server error","type":"string"}}}}}}}}}
```
