{
  "info": {
    "name": "Textile FX API",
    "description": "Non-custodial REST API for the Textile FX swap product. Quote, build unsigned transactions, and track settlement. The API never signs or holds funds — you sign returned payloads with your own wallet and broadcast them yourself.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "http://localhost:8911/v1"
    },
    {
      "key": "api_key",
      "value": "tx_test_your_key_here"
    }
  ],
  "item": [
    {
      "name": "System",
      "item": [
        {
          "name": "Liveness probe",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/health",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "health"
              ]
            },
            "description": "Liveness probe"
          }
        },
        {
          "name": "Readiness probe with dependency health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/status",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "status"
              ]
            },
            "description": "Readiness probe with dependency health"
          }
        }
      ]
    },
    {
      "name": "Pools",
      "item": [
        {
          "name": "List FX corridors",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/pools?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "pools"
              ],
              "query": [
                {
                  "key": "chainId",
                  "value": "",
                  "description": "Restrict to one chain. Omit for all env chains.",
                  "disabled": true
                }
              ]
            },
            "description": "List FX corridors"
          }
        }
      ]
    },
    {
      "name": "Quotes",
      "item": [
        {
          "name": "Get a live quote",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/quote?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "quote"
              ],
              "query": [
                {
                  "key": "chainId",
                  "value": "",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "sellToken",
                  "value": "",
                  "description": "Collateral asset address",
                  "disabled": false
                },
                {
                  "key": "buyToken",
                  "value": "",
                  "description": "Debt asset address",
                  "disabled": false
                },
                {
                  "key": "sellAmount",
                  "value": "",
                  "description": "Atomic units, base-10 string",
                  "disabled": false
                },
                {
                  "key": "minRate",
                  "value": "",
                  "description": "Min debt-per-collateral rate (RAY)",
                  "disabled": true
                }
              ]
            },
            "description": "Get a live quote"
          }
        },
        {
          "name": "List live funded offers and available liquidity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/order-book?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "order-book"
              ],
              "query": [
                {
                  "key": "chainId",
                  "value": "",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "sellToken",
                  "value": "",
                  "description": "Asset the taker sells",
                  "disabled": false
                },
                {
                  "key": "buyToken",
                  "value": "",
                  "description": "Asset the taker receives",
                  "disabled": false
                }
              ]
            },
            "description": "List live funded offers and available liquidity"
          }
        }
      ]
    },
    {
      "name": "Swaps",
      "item": [
        {
          "name": "Quote and build unsigned swap transactions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional. Retries with the same key replay the response."
              }
            ],
            "url": {
              "raw": "{{base_url}}/swaps",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "swaps"
              ]
            },
            "description": "Quote and build unsigned swap transactions",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"chainId\": 8453,\n  \"sellToken\": \"0x0000000000000000000000000000000000000000\",\n  \"buyToken\": \"0x0000000000000000000000000000000000000000\",\n  \"sellAmount\": \"1000000\",\n  \"taker\": \"0x0000000000000000000000000000000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List swaps",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/swaps?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "swaps"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "List swaps"
          }
        },
        {
          "name": "Get a swap",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/swaps/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "swaps",
                ":id"
              ]
            },
            "description": "Get a swap"
          }
        },
        {
          "name": "Record a broadcast tx hash",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional. Retries with the same key replay the response."
              }
            ],
            "url": {
              "raw": "{{base_url}}/swaps/:id/submit",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "swaps",
                ":id",
                "submit"
              ]
            },
            "description": "Record a broadcast tx hash",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"txHash\": \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Limit orders",
      "item": [
        {
          "name": "Guided maker pricing for a resting limit order",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/limit-orders/quote?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "limit-orders",
                "quote"
              ],
              "query": [
                {
                  "key": "chainId",
                  "value": "",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "sellToken",
                  "value": "",
                  "description": "Asset the maker sells",
                  "disabled": false
                },
                {
                  "key": "buyToken",
                  "value": "",
                  "description": "Asset the maker wants",
                  "disabled": false
                },
                {
                  "key": "sellAmount",
                  "value": "",
                  "description": "Atomic units, base-10 string",
                  "disabled": false
                },
                {
                  "key": "marginBps",
                  "value": "",
                  "description": "Profit conceded to the filling operator on top of the reactor fee (default 10)",
                  "disabled": true
                }
              ]
            },
            "description": "Guided maker pricing for a resting limit order"
          }
        },
        {
          "name": "Build EIP-712 typed data to sign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional. Retries with the same key replay the response."
              }
            ],
            "url": {
              "raw": "{{base_url}}/limit-orders/prepare",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "limit-orders",
                "prepare"
              ]
            },
            "description": "Build EIP-712 typed data to sign",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"chainId\": 8453,\n  \"maker\": \"0x0000000000000000000000000000000000000000\",\n  \"sellToken\": \"0x0000000000000000000000000000000000000000\",\n  \"sellAmount\": \"1000000\",\n  \"buyToken\": \"0x0000000000000000000000000000000000000000\",\n  \"buyAmount\": \"1000000\",\n  \"deadline\": 1900000000\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Submit a signed limit order",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional. Retries with the same key replay the response."
              }
            ],
            "url": {
              "raw": "{{base_url}}/limit-orders",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "limit-orders"
              ]
            },
            "description": "Submit a signed limit order",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"chainId\": 8453,\n  \"reactor\": \"0x0000000000000000000000000000000000000000\",\n  \"maker\": \"0x0000000000000000000000000000000000000000\",\n  \"inputToken\": \"0x0000000000000000000000000000000000000000\",\n  \"inputAmount\": \"1000000\",\n  \"outputToken\": \"0x0000000000000000000000000000000000000000\",\n  \"outputAmount\": \"1000000\",\n  \"nonce\": \"1000000\",\n  \"deadline\": \"1900000000\",\n  \"signature\": \"0x\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List a wallet's limit orders",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/limit-orders?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "limit-orders"
              ],
              "query": [
                {
                  "key": "chainId",
                  "value": "",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "wallet",
                  "value": "",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ]
            },
            "description": "List a wallet's limit orders"
          }
        },
        {
          "name": "Get one limit order submitted through the API",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/limit-orders/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "limit-orders",
                ":id"
              ]
            },
            "description": "Get one limit order submitted through the API"
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "Register a webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional. Retries with the same key replay the response."
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks"
              ]
            },
            "description": "Register a webhook endpoint",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://example.com/webhooks/textile\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List webhook endpoints",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks"
              ]
            },
            "description": "List webhook endpoints"
          }
        },
        {
          "name": "Delete a webhook endpoint",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                ":id"
              ]
            },
            "description": "Delete a webhook endpoint"
          }
        }
      ]
    }
  ]
}
