What is relayfor.si?

Launches

Launches built by relayfor.si and signed last by the creator's own wallet.

A launch creates a pump.fun token with its fee route locked in the same transaction. Your server prepares it with the secret key; the creator's wallet signs it last and pays for it. relayfor.si never holds the creator's keys or money. See Launch a token for the whole flow.

An import is a launch too (kind: "import"): bringing a token already on pump.fun answers a launch, and you follow it here the same way.

Prepare a launch

POST

Builds the token's launch transaction (its route locked in the same transaction), checks it by simulation and signs it with the new mint. The user's wallet signs it last; send it yourself, or post it to /launches/{id}/submit.

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Send an Idempotency-Key (any unique string, a UUID): a retry with the same key and body gets the first answer back for 24 hours, a secret it carried included.

Request
curl -X POST https://relayfor.si/api/project/v1/launches/prepare \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY" \  -H "Idempotency-Key: $(uuidgen)" \  -H "Content-Type: application/json" \  -d '{    "creator": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",    "name": "Nova",    "symbol": "NOVA",    "description": "The agent that reads Solana for you.",    "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",    "split": {      "ai_share": 7000,      "creator_share": 1000    }  }'

Body

  • creatorstringRequired

    The user's wallet: the token's creator, which pays and signs the transaction last.

  • namestringRequired

    The token's name, up to 32 bytes.

  • symbolstringRequired

    Its ticker, up to 13 bytes, such as NOVA.

  • descriptionstring

    A few words about it, shown on pump.fun; up to 1,000 characters.

  • imagestringRequired

    A base64 data URI: data:image/png;base64,... PNG, JPEG, GIF or WebP, up to 2 MB.

  • websitestring

    Its site, an https:// link shown on pump.fun.

  • twitterstring

    Its X account, an https:// link shown on pump.fun.

  • telegramstring

    Its Telegram, an https:// link shown on pump.fun.

  • presetstring

    The fee preset (fps_...) that splits the project's part of the token's creator fee; the project's default when absent.

  • splitobject

    The creator's choice of the AI and creator parts, in basis points of the project's part: either alone, or both adding up to the preset's creator_choice.budget; the AI at least the preset's floor. The preset's own split when absent.

    • ai_shareinteger

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_shareinteger

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • creator_fees_tostring

    Where the creator's part goes; the creator's own wallet when absent. When it is one of the preset's wallets, that wallet holds both shares. Ignored when the creator's share is 0.

  • opening_buy_lamportsstring | integer

    For a token quoted in SOL: SOL to buy the token with in the launch itself, fees included.

  • quote_mintstring

    What the token trades against and pays its creator fees in: a token pump.fun takes as a quote (USDC, or one on its quote-control list). SOL when absent. The token's AI share then arrives in that token.

  • opening_buy_amountstring | integer

    For a token quoted in another token: its base units to buy the token with in the launch itself, fees included (5000000 is 5 USDC), from the creator's own account for it. Base units as on chain: a Token-2022 quote with a scaled UI amount (an xStock) or interest reads differently in wallets, and Token-2022's UiAmountToAmount turns a wallet's amount into them.

  • tokens_tostring

    Who gets the opening buy's tokens; the creator when absent.

  • transaction_version0 | 1

    1 (the default) for wallets that sign v1 transactions; 0 for one that doesn't yet: a v0 transaction of at most 1232 bytes, its shared accounts loaded from relayfor's lookup table. A v0 launch carries no opening buy and fits the creator and about 2 funded project wallets in its route.

Answer

Answers 201 with Launch.

Example answer
{  "id": "lch_qrjvWeRkipW8wXmW",  "kind": "wallet",  "state": "prepared",  "mint": "MASi45ub7Qe4ZE36UT5G6cU4ud8Fhhe4deS4F3cw9KTA",  "creator": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",  "name": "Nova",  "symbol": "NOVA",  "metadata_uri": "https://ipfs.io/ipfs/bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku",  "image": "https://ipfs.io/ipfs/bafkreiexgjbqcz4ahcgo6cf3xsnihhjbfy2v4bwy2hwz4tn63qsr7gnvve",  "route": [    {      "address": "yNoVKf58ZTBqNAYT3j5qcdsyuMNmPfYetW5v6JXmj54o",      "bps": 5600,      "roles": [        "ai"      ]    },    {      "address": "mLidkuVKnRyjP2WPBg8Y4ErK9pGSSxY6BVScJy9uUxcJ",      "bps": 2000,      "roles": [        "platform"      ]    },    {      "address": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",      "bps": 800,      "roles": [        "creator"      ]    },    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "bps": 1600,      "roles": [        "project"      ]    }  ],  "preset": {    "id": "fps_Hh6iDhVIjXITTTn7",    "name": "Standard"  },  "fee_lamports": "20000000",  "quote_mint": "So11111111111111111111111111111111111111112",  "opening_buy": null,  "transaction": {    "version": 1,    "base64": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...",    "last_valid_block_height": "376012345"  },  "signature": null,  "error": null,  "created_at": "2026-10-07T09:12:04.000Z",  "confirmed_at": null}
Its fields
  • idstringRequired

    lch_ and 16 characters.

  • kind"wallet" | "import"Required

    wallet: launched from the creator's wallet; import: brought from pump.fun.

  • state"prepared" | "sent" | "confirmed" | "failed" | "expired"Required

    prepared: waits for the wallet; confirmed: the chain shows the token as prepared.

  • mintstringRequired

    The token's mint address.

  • creatorstringRequired

    The creator's wallet: it signs and pays for the launch or import.

  • namestringRequired

    The token's name.

  • symbolstringRequired

    The token's ticker.

  • metadata_uristringRequired

    The token's metadata on IPFS, as pump.fun names it.

  • imagestring | nullRequired

    Null for an import: we fetch no link a token names.

  • routeobject[]Required

    The token's shareholders as locked on chain: the AI first, relayfor second.

    • addressstringRequired

      A shareholder's wallet.

    • bpsintegerRequired

      Basis points of the whole creator fee, as pump.fun pays it.

    • roles"ai" | "platform" | "creator" | "project"[]Required

      ai: the token's vault, its AI credit; platform: relayfor's 20%; creator: the creator's part; project: one of the project's wallets. A creator who is one of the project's wallets holds both shares in one shareholder.

  • presetobject | nullRequired

    The fee preset it was made with, named as it was then.

    • idstringRequired

      fps_...

    • namestringRequired

      Its name when the token was made.

  • fee_lamportsstringRequired

    relayfor's fee in this transaction, in lamports: 0.02 SOL a launch, 1 SOL an import.

  • quote_mintstringRequired

    What the token trades against: wrapped SOL for SOL.

  • opening_buyobject | nullRequired

    The creator's first buy, in the launch itself; null for none.

    • amountstringRequired

      The quote's base units spent, fees included.

    • lamportsstring | nullRequired

      The same in lamports, for a token quoted in SOL.

    • tokensstringRequired

      The tokens it gets, in base units.

    • tokens_tostring | nullRequired

      Who gets them; null for the creator.

  • transactionobject | nullRequired

    While prepared: the transaction for the creator's wallet to sign last (a wallet launch or an import).

    • version0 | 1Required

      Its format: 1, or 0 for a wallet that can't sign version 1.

    • base64stringRequired

      The transaction, base64, signed by the new mint.

    • last_valid_block_heightstringRequired

      Past this block height it can no longer land: prepare a new launch.

  • signaturestring | nullRequired

    The transaction on Solana; null until it was sent.

  • errorstring | nullRequired

    Why it failed or expired; null unless it did.

  • created_atstringRequired

    When it was made, in UTC.

  • confirmed_atstring | nullRequired

    When the chain confirmed it; null until then.

Errors

A 409, 429, or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Send a signed launch

POST

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Send an Idempotency-Key (any unique string, a UUID): a retry with the same key and body gets the first answer back for 24 hours, a secret it carried included.

Request
curl -X POST https://relayfor.si/api/project/v1/launches/lch_qrjvWeRkipW8wXmW/submit \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY" \  -H "Idempotency-Key: $(uuidgen)" \  -H "Content-Type: application/json" \  -d '{    "transaction": "AQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4f..."  }'

Path

  • idstringRequired

    The launch's id: lch_...

Body

  • transactionstringRequired

    The prepared transaction with the wallet's signature added, base64.

Answer

Answers 200 with Launch.

Example answer
{  "id": "lch_qrjvWeRkipW8wXmW",  "kind": "wallet",  "state": "sent",  "mint": "MASi45ub7Qe4ZE36UT5G6cU4ud8Fhhe4deS4F3cw9KTA",  "creator": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",  "name": "Nova",  "symbol": "NOVA",  "metadata_uri": "https://ipfs.io/ipfs/bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku",  "image": "https://ipfs.io/ipfs/bafkreiexgjbqcz4ahcgo6cf3xsnihhjbfy2v4bwy2hwz4tn63qsr7gnvve",  "route": [    {      "address": "yNoVKf58ZTBqNAYT3j5qcdsyuMNmPfYetW5v6JXmj54o",      "bps": 5600,      "roles": [        "ai"      ]    },    {      "address": "mLidkuVKnRyjP2WPBg8Y4ErK9pGSSxY6BVScJy9uUxcJ",      "bps": 2000,      "roles": [        "platform"      ]    },    {      "address": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",      "bps": 800,      "roles": [        "creator"      ]    },    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "bps": 1600,      "roles": [        "project"      ]    }  ],  "preset": {    "id": "fps_Hh6iDhVIjXITTTn7",    "name": "Standard"  },  "fee_lamports": "20000000",  "quote_mint": "So11111111111111111111111111111111111111112",  "opening_buy": null,  "transaction": null,  "signature": "8SVM5jGU5EjLs8zrAnijQAHy9WFp7SyYBjvFBnUZSNTDPM6oQ2NcWVn2RNagKZ58sFy76HJ3zrCJq9uUwkuHSAbZ",  "error": null,  "created_at": "2026-10-07T09:12:04.000Z",  "confirmed_at": null}
Its fields
  • idstringRequired

    lch_ and 16 characters.

  • kind"wallet" | "import"Required

    wallet: launched from the creator's wallet; import: brought from pump.fun.

  • state"prepared" | "sent" | "confirmed" | "failed" | "expired"Required

    prepared: waits for the wallet; confirmed: the chain shows the token as prepared.

  • mintstringRequired

    The token's mint address.

  • creatorstringRequired

    The creator's wallet: it signs and pays for the launch or import.

  • namestringRequired

    The token's name.

  • symbolstringRequired

    The token's ticker.

  • metadata_uristringRequired

    The token's metadata on IPFS, as pump.fun names it.

  • imagestring | nullRequired

    Null for an import: we fetch no link a token names.

  • routeobject[]Required

    The token's shareholders as locked on chain: the AI first, relayfor second.

    • addressstringRequired

      A shareholder's wallet.

    • bpsintegerRequired

      Basis points of the whole creator fee, as pump.fun pays it.

    • roles"ai" | "platform" | "creator" | "project"[]Required

      ai: the token's vault, its AI credit; platform: relayfor's 20%; creator: the creator's part; project: one of the project's wallets. A creator who is one of the project's wallets holds both shares in one shareholder.

  • presetobject | nullRequired

    The fee preset it was made with, named as it was then.

    • idstringRequired

      fps_...

    • namestringRequired

      Its name when the token was made.

  • fee_lamportsstringRequired

    relayfor's fee in this transaction, in lamports: 0.02 SOL a launch, 1 SOL an import.

  • quote_mintstringRequired

    What the token trades against: wrapped SOL for SOL.

  • opening_buyobject | nullRequired

    The creator's first buy, in the launch itself; null for none.

    • amountstringRequired

      The quote's base units spent, fees included.

    • lamportsstring | nullRequired

      The same in lamports, for a token quoted in SOL.

    • tokensstringRequired

      The tokens it gets, in base units.

    • tokens_tostring | nullRequired

      Who gets them; null for the creator.

  • transactionobject | nullRequired

    While prepared: the transaction for the creator's wallet to sign last (a wallet launch or an import).

    • version0 | 1Required

      Its format: 1, or 0 for a wallet that can't sign version 1.

    • base64stringRequired

      The transaction, base64, signed by the new mint.

    • last_valid_block_heightstringRequired

      Past this block height it can no longer land: prepare a new launch.

  • signaturestring | nullRequired

    The transaction on Solana; null until it was sent.

  • errorstring | nullRequired

    Why it failed or expired; null unless it did.

  • created_atstringRequired

    When it was made, in UTC.

  • confirmed_atstring | nullRequired

    When the chain confirmed it; null until then.

Errors

A 409, 429, or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Get a launch

GET

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl https://relayfor.si/api/project/v1/launches/lch_qrjvWeRkipW8wXmW \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY"

Path

  • idstringRequired

    The launch's id: lch_...

Answer

Answers 200 with Launch.

Example answer
{  "id": "lch_qrjvWeRkipW8wXmW",  "kind": "wallet",  "state": "confirmed",  "mint": "MASi45ub7Qe4ZE36UT5G6cU4ud8Fhhe4deS4F3cw9KTA",  "creator": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",  "name": "Nova",  "symbol": "NOVA",  "metadata_uri": "https://ipfs.io/ipfs/bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku",  "image": "https://ipfs.io/ipfs/bafkreiexgjbqcz4ahcgo6cf3xsnihhjbfy2v4bwy2hwz4tn63qsr7gnvve",  "route": [    {      "address": "yNoVKf58ZTBqNAYT3j5qcdsyuMNmPfYetW5v6JXmj54o",      "bps": 5600,      "roles": [        "ai"      ]    },    {      "address": "mLidkuVKnRyjP2WPBg8Y4ErK9pGSSxY6BVScJy9uUxcJ",      "bps": 2000,      "roles": [        "platform"      ]    },    {      "address": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",      "bps": 800,      "roles": [        "creator"      ]    },    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "bps": 1600,      "roles": [        "project"      ]    }  ],  "preset": {    "id": "fps_Hh6iDhVIjXITTTn7",    "name": "Standard"  },  "fee_lamports": "20000000",  "quote_mint": "So11111111111111111111111111111111111111112",  "opening_buy": null,  "transaction": null,  "signature": "8SVM5jGU5EjLs8zrAnijQAHy9WFp7SyYBjvFBnUZSNTDPM6oQ2NcWVn2RNagKZ58sFy76HJ3zrCJq9uUwkuHSAbZ",  "error": null,  "created_at": "2026-10-07T09:12:04.000Z",  "confirmed_at": "2026-10-07T09:12:31.000Z"}
Its fields
  • idstringRequired

    lch_ and 16 characters.

  • kind"wallet" | "import"Required

    wallet: launched from the creator's wallet; import: brought from pump.fun.

  • state"prepared" | "sent" | "confirmed" | "failed" | "expired"Required

    prepared: waits for the wallet; confirmed: the chain shows the token as prepared.

  • mintstringRequired

    The token's mint address.

  • creatorstringRequired

    The creator's wallet: it signs and pays for the launch or import.

  • namestringRequired

    The token's name.

  • symbolstringRequired

    The token's ticker.

  • metadata_uristringRequired

    The token's metadata on IPFS, as pump.fun names it.

  • imagestring | nullRequired

    Null for an import: we fetch no link a token names.

  • routeobject[]Required

    The token's shareholders as locked on chain: the AI first, relayfor second.

    • addressstringRequired

      A shareholder's wallet.

    • bpsintegerRequired

      Basis points of the whole creator fee, as pump.fun pays it.

    • roles"ai" | "platform" | "creator" | "project"[]Required

      ai: the token's vault, its AI credit; platform: relayfor's 20%; creator: the creator's part; project: one of the project's wallets. A creator who is one of the project's wallets holds both shares in one shareholder.

  • presetobject | nullRequired

    The fee preset it was made with, named as it was then.

    • idstringRequired

      fps_...

    • namestringRequired

      Its name when the token was made.

  • fee_lamportsstringRequired

    relayfor's fee in this transaction, in lamports: 0.02 SOL a launch, 1 SOL an import.

  • quote_mintstringRequired

    What the token trades against: wrapped SOL for SOL.

  • opening_buyobject | nullRequired

    The creator's first buy, in the launch itself; null for none.

    • amountstringRequired

      The quote's base units spent, fees included.

    • lamportsstring | nullRequired

      The same in lamports, for a token quoted in SOL.

    • tokensstringRequired

      The tokens it gets, in base units.

    • tokens_tostring | nullRequired

      Who gets them; null for the creator.

  • transactionobject | nullRequired

    While prepared: the transaction for the creator's wallet to sign last (a wallet launch or an import).

    • version0 | 1Required

      Its format: 1, or 0 for a wallet that can't sign version 1.

    • base64stringRequired

      The transaction, base64, signed by the new mint.

    • last_valid_block_heightstringRequired

      Past this block height it can no longer land: prepare a new launch.

  • signaturestring | nullRequired

    The transaction on Solana; null until it was sent.

  • errorstring | nullRequired

    Why it failed or expired; null unless it did.

  • created_atstringRequired

    When it was made, in UTC.

  • confirmed_atstring | nullRequired

    When the chain confirmed it; null until then.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

List launches

GET

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl https://relayfor.si/api/project/v1/launches \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY"

Query

  • limitinteger

    1 to 100; default 20.

  • cursorstring

    next_cursor from the page before.

Answer

Answers 200 with LaunchList.

Example answer
{  "data": [    {      "id": "lch_qrjvWeRkipW8wXmW",      "kind": "wallet",      "state": "confirmed",      "mint": "MASi45ub7Qe4ZE36UT5G6cU4ud8Fhhe4deS4F3cw9KTA",      "creator": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",      "name": "Nova",      "symbol": "NOVA",      "metadata_uri": "https://ipfs.io/ipfs/bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku",      "image": "https://ipfs.io/ipfs/bafkreiexgjbqcz4ahcgo6cf3xsnihhjbfy2v4bwy2hwz4tn63qsr7gnvve",      "route": [        {          "address": "yNoVKf58ZTBqNAYT3j5qcdsyuMNmPfYetW5v6JXmj54o",          "bps": 5600,          "roles": [            "ai"          ]        },        {          "address": "mLidkuVKnRyjP2WPBg8Y4ErK9pGSSxY6BVScJy9uUxcJ",          "bps": 2000,          "roles": [            "platform"          ]        },        {          "address": "b8dLcukC7edhDQ7cn5d4gEYkbUrMWeWQLGsCmrG6dLaY",          "bps": 800,          "roles": [            "creator"          ]        },        {          "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",          "bps": 1600,          "roles": [            "project"          ]        }      ],      "preset": {        "id": "fps_Hh6iDhVIjXITTTn7",        "name": "Standard"      },      "fee_lamports": "20000000",      "quote_mint": "So11111111111111111111111111111111111111112",      "opening_buy": null,      "transaction": null,      "signature": "8SVM5jGU5EjLs8zrAnijQAHy9WFp7SyYBjvFBnUZSNTDPM6oQ2NcWVn2RNagKZ58sFy76HJ3zrCJq9uUwkuHSAbZ",      "error": null,      "created_at": "2026-10-07T09:12:04.000Z",      "confirmed_at": "2026-10-07T09:12:31.000Z"    }  ],  "next_cursor": null}
Its fields
  • dataobject[]Required

    The items, newest first.

    • idstringRequired

      lch_ and 16 characters.

    • kind"wallet" | "import"Required

      wallet: launched from the creator's wallet; import: brought from pump.fun.

    • state"prepared" | "sent" | "confirmed" | "failed" | "expired"Required

      prepared: waits for the wallet; confirmed: the chain shows the token as prepared.

    • mintstringRequired

      The token's mint address.

    • creatorstringRequired

      The creator's wallet: it signs and pays for the launch or import.

    • namestringRequired

      The token's name.

    • symbolstringRequired

      The token's ticker.

    • metadata_uristringRequired

      The token's metadata on IPFS, as pump.fun names it.

    • imagestring | nullRequired

      Null for an import: we fetch no link a token names.

    • routeobject[]Required

      The token's shareholders as locked on chain: the AI first, relayfor second.

      • addressstringRequired

        A shareholder's wallet.

      • bpsintegerRequired

        Basis points of the whole creator fee, as pump.fun pays it.

      • roles"ai" | "platform" | "creator" | "project"[]Required

        ai: the token's vault, its AI credit; platform: relayfor's 20%; creator: the creator's part; project: one of the project's wallets. A creator who is one of the project's wallets holds both shares in one shareholder.

    • presetobject | nullRequired

      The fee preset it was made with, named as it was then.

      • idstringRequired

        fps_...

      • namestringRequired

        Its name when the token was made.

    • fee_lamportsstringRequired

      relayfor's fee in this transaction, in lamports: 0.02 SOL a launch, 1 SOL an import.

    • quote_mintstringRequired

      What the token trades against: wrapped SOL for SOL.

    • opening_buyobject | nullRequired

      The creator's first buy, in the launch itself; null for none.

      • amountstringRequired

        The quote's base units spent, fees included.

      • lamportsstring | nullRequired

        The same in lamports, for a token quoted in SOL.

      • tokensstringRequired

        The tokens it gets, in base units.

      • tokens_tostring | nullRequired

        Who gets them; null for the creator.

    • transactionobject | nullRequired

      While prepared: the transaction for the creator's wallet to sign last (a wallet launch or an import).

      • version0 | 1Required

        Its format: 1, or 0 for a wallet that can't sign version 1.

      • base64stringRequired

        The transaction, base64, signed by the new mint.

      • last_valid_block_heightstringRequired

        Past this block height it can no longer land: prepare a new launch.

    • signaturestring | nullRequired

      The transaction on Solana; null until it was sent.

    • errorstring | nullRequired

      Why it failed or expired; null unless it did.

    • created_atstringRequired

      When it was made, in UTC.

    • confirmed_atstring | nullRequired

      When the chain confirmed it; null until then.

  • next_cursorstring | nullRequired

    Pass it as cursor for the next page; null on the last page.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

On this page