---
description: >-
  A fill is a transfer made to a single liquidity source (AMM pool, Off-chain
  MM, or limit order) inside a transaction. A transaction can have one or more
  fills.
---

# Fill

{% tabs %}
{% tab title="Query" %}
```graphql
query Fills {
  fills(limit: 2, offset: 100, order_by: {timestamp: desc}, where: {chainName: {_eq: "Ethereum"}}) {
    affiliate
    app
    blockNumber
    chainName
    feeRecipient
    isDirect
    isRfq
    liquiditySource
    logIndex
    maker
    makerAmount
    makerToken
    makerTokenPriceUSD
    makerTokenSymbol
    makerVolumeUSD
    nativeOrderHash
    nativeOrderType
    protocolVersion
    router
    taker
    takerAmount
    takerToken
    takerTokenPriceUSD
    takerTokenSymbol
    takerVolumeUSD
    timestamp
    transactionFrom
    transactionHash
    transactionTo
    volumeUSD
  }
}

```
{% endtab %}

{% tab title="Response" %}
```json
{
  "data": {
    "fills": [
      {
        "affiliate": "0x86003b044f70dac0abc80ac8957305b6370893ed",
        "app": "Matcha",
        "blockNumber": 15252717,
        "chainName": "Ethereum",
        "feeRecipient": null,
        "isDirect": false,
        "isRfq": true,
        "liquiditySource": "0x RFQ",
        "logIndex": 571,
        "maker": "0x00000000ae347930bd1e7b0f35588b92280f9e75",
        "makerAmount": 42160.2697129934,
        "makerToken": "0x6b175474e89094c44da98b954eedeac495271d0f",
        "makerTokenPriceUSD": 1.00002725170364,
        "makerTokenSymbol": "DAI",
        "makerVolumeUSD": 42161.4186521689,
        "nativeOrderHash": "0x8c4c19cf1fffbe5faf78a3630d5a81177d106b4417612bf542461c85f04cb20e",
        "nativeOrderType": "RFQ Order",
        "protocolVersion": "v4",
        "router": "0x API",
        "taker": "0xf4160bc6c49def9bd17fb9ff194e43ddd49ada3e",
        "takerAmount": 24.7080043880914,
        "takerToken": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "takerTokenPriceUSD": 1722.03233503279,
        "takerTokenSymbol": "WETH",
        "takerVolumeUSD": 42547.9824904254,
        "timestamp": "2022-07-31T21:42:40+00:00",
        "transactionFrom": "0xf4160bc6c49def9bd17fb9ff194e43ddd49ada3e",
        "transactionHash": "0x1dcf34d4be336f1a7dcdb29590bd5812e0e1734a3f03e284323906fbd1a1d8b2",
        "transactionTo": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
        "volumeUSD": 42161.4186521689
      },
      {
        "affiliate": "0x86003b044f70dac0abc80ac8957305b6370893ed",
        "app": "Matcha",
        "blockNumber": 15252635,
        "chainName": "Ethereum",
        "feeRecipient": null,
        "isDirect": false,
        "isRfq": true,
        "liquiditySource": "0x RFQ",
        "logIndex": 431,
        "maker": "0x00000000ae347930bd1e7b0f35588b92280f9e75",
        "makerAmount": 17.395665,
        "makerToken": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "makerTokenPriceUSD": 1722.03233503279,
        "makerTokenSymbol": "WETH",
        "makerVolumeUSD": 29955.8976193981,
        "nativeOrderHash": "0x463d7bd4d172e5613d01c5f31ad4093734aefff340136101901ebc797b31550e",
        "nativeOrderType": "RFQ Order",
        "protocolVersion": "v4",
        "router": "0x API",
        "taker": "0x9ee6f42531adac0bd443756f0120c6aeed354115",
        "takerAmount": 30000,
        "takerToken": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
        "takerTokenPriceUSD": 1.0003513255839,
        "takerTokenSymbol": "USDC",
        "takerVolumeUSD": 30010.5397675169,
        "timestamp": "2022-07-31T21:22:04+00:00",
        "transactionFrom": "0x9ee6f42531adac0bd443756f0120c6aeed354115",
        "transactionHash": "0x6a04ca86762fd1fe1f5bf1c0b976d8577a127c9a58c944861bd3b30c60f0503a",
        "transactionTo": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
        "volumeUSD": 30010.5397675169
      }
    ]
  }
}
```
{% endtab %}

{% tab title="Code" %}
```javascript
async function fetchGraphQL(operationsDoc, operationName, variables) {
  const result = await fetch(
    "https://api.0x.org/data/v0",
    {
      method: "POST",
      headers: {
        '0x-api-key': 'USE_APY_KEY_HERE'
      },
      body: JSON.stringify({
        query: operationsDoc,
        variables: variables,
        operationName: operationName
      })
    }
  );

  return await result.json();
}

const operationsDoc = `
  query Chains {
    fills(limit: 2, offset: 100, order_by: {timestamp: desc}, where: {chainName: {_eq: "Ethereum"}, app: {_eq: "Matcha"}}) {
      affiliate
      app
      blockNumber
      chainName
      feeRecipient
      isDirect
      isRfq
      liquiditySource
      logIndex
      maker
      makerAmount
      makerToken
      makerTokenPriceUSD
      makerTokenSymbol
      makerVolumeUSD
      nativeOrderHash
      nativeOrderType
      protocolVersion
      router
      taker
      takerAmount
      takerToken
      takerTokenPriceUSD
      takerTokenSymbol
      takerVolumeUSD
      timestamp
      transactionFrom
      transactionHash
      transactionTo
      volumeUSD
    }
  }
`;

function fetchChains() {
  return fetchGraphQL(
    operationsDoc,
    "Chains",
    {}
  );
}

async function startFetchChains() {
  const { errors, data } = await fetchChains();

  if (errors) {
    // handle those errors like a pro
    console.error(errors);
  }

  // do something great with this precious data
  console.log(data);
}

startFetchChains();
```
{% endtab %}
{% endtabs %}
