[{"data":1,"prerenderedAt":9},["ShallowReactive",2],{"doc-faq":3},{"blocks":4,"markdown":8},[5],{"kind":6,"html":7},"html","\u003Ch2 id=\"credits\">Credits\u003C\u002Fh2>\n\u003Ch3 id=\"what-is-one-credit\">What is one credit?\u003C\u002Fh3>\n\u003Cp>One oracle call. Some oracles cost more than one, and every answer tells you\nwhat it actually cost in its \u003Ccode>credits\u003C\u002Fcode> field.\u003C\u002Fp>\n\u003Cp>Oracles differ in how much work a verdict takes, so they can be priced\ndifferently; charging per request would make the cheap ones subsidise the\nexpensive ones. Today \u003Ccode>chart\u003C\u002Fcode>, \u003Ccode>vector-graphics\u003C\u002Fcode> and \u003Ccode>coverage-policy\u003C\u002Fcode> each cost one credit.\u003C\u002Fp>\n\u003Ch3 id=\"why-was-i-charged-for-an-answer-i-could-not-use\">Why was I charged for an answer I could not use?\u003C\u002Fh3>\n\u003Cp>Because deciding that something does not hold is the work, and the verdict is\nwhat you are buying. \u003Ccode class=\"chip chip--valid\">valid\u003C\u002Fcode> and \u003Ccode class=\"chip chip--invalid\">invalid\u003C\u002Fcode> both bill.\u003C\u002Fp>\n\u003Cp>What does \u003Cstrong>not\u003C\u002Fstrong> bill is a failure on our side. That call is refunded\nautomatically and still appears in your usage — a refund never leaves a gap in\nthe record.\u003C\u002Fp>\n\u003Ch3 id=\"do-credits-expire\">Do credits expire?\u003C\u002Fh3>\n\u003Cp>No. They are prepaid and nothing resets them at the end of a month. What you buy\nis added to what you hold.\u003C\u002Fp>\n\u003Ch3 id=\"do-more-api-keys-mean-more-credits\">Do more API keys mean more credits?\u003C\u002Fh3>\n\u003Cp>No. Credits belong to the organisation, not to a key. A second key is for\nseparating environments and revoking one thing without disturbing another — see\n\u003Ca href=\"\u002Fauthentication\">Authentication\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"api-keys\">API keys\u003C\u002Fh2>\n\u003Ch3 id=\"how-does-key-rotation-work\">How does key rotation work?\u003C\u002Fh3>\n\u003Cp>Create the new key first, deploy it, then revoke the old one. Both work at the\nsame time in between, so nothing is down while you change over.\u003C\u002Fp>\n\u003Cp>The console shows \u003Cstrong>Last used\u003C\u002Fstrong> for every key, which is how you confirm the old\none has actually stopped being called before you revoke it.\u003C\u002Fp>\n\u003Ch3 id=\"what-happens-when-a-key-expires\">What happens when a key expires?\u003C\u002Fh3>\n\u003Cp>It stops authenticating. Calls presenting it answer \u003Ccode>401\u003C\u002Fcode>, exactly as a revoked\nkey does. A key's expiry date is set when it is created and is shown on the\n\u003Ca href=\"https:\u002F\u002Fapp.formalogic.io\u002Fkeys\" target=\"_blank\" rel=\"noopener noreferrer\">API keys\u003C\u002Fa> page.\u003C\u002Fp>\n\u003Ch3 id=\"i-lost-a-key-can-you-show-it-to-me-again\">I lost a key. Can you show it to me again?\u003C\u002Fh3>\n\u003Cp>No — it is shown once, when it is created, and never stored anywhere we can read\nit back from. Create a new one and revoke the old one.\u003C\u002Fp>\n\u003Ch3 id=\"what-does-revoking-do-to-my-usage-history\">What does revoking do to my usage history?\u003C\u002Fh3>\n\u003Cp>Nothing. Usage already recorded against a key stays attributed to it. Revoking\nstops the key working; it does not erase what it did, which is the question\nrevoking usually gets asked in order to answer.\u003C\u002Fp>\n\u003Ch2 id=\"verdicts\">Verdicts\u003C\u002Fh2>\n\u003Ch3 id=\"what-does-verified-by-mean\">What does \u003Ccode>verified_by\u003C\u002Fcode> mean?\u003C\u002Fh3>\n\u003Cp>It identifies the version of the rules your answer was checked against — not the build that produced\nit. Store it next to the artifact, and a year from now you can still say which version of the rules accepted that artifact.\u003C\u002Fp>\n\u003Ch3 id=\"will-the-same-request-always-give-the-same-answer\">Will the same request always give the same answer?\u003C\u002Fh3>\n\u003Cp>No, and it is not meant to. What is guaranteed is that whatever comes back has\nbeen checked before you see it. See \u003Ca href=\"\u002Fcitations\">Citations\u003C\u002Fa>.\u003C\u002Fp>\n","# FAQ\n\n> Credits, keys and verdicts — the questions that come up first.\n\n## Credits\n\n### What is one credit?\n\nOne oracle call. Some oracles cost more than one, and every answer tells you\nwhat it actually cost in its `credits` field.\n\nOracles differ in how much work a verdict takes, so they can be priced\ndifferently; charging per request would make the cheap ones subsidise the\nexpensive ones. Today `chart`, `vector-graphics` and `coverage-policy` each cost one credit.\n\n### Why was I charged for an answer I could not use?\n\nBecause deciding that something does not hold is the work, and the verdict is\nwhat you are buying. `valid` and `invalid` both bill.\n\nWhat does **not** bill is a failure on our side. That call is refunded\nautomatically and still appears in your usage — a refund never leaves a gap in\nthe record.\n\n### Do credits expire?\n\nNo. They are prepaid and nothing resets them at the end of a month. What you buy\nis added to what you hold.\n\n### Do more API keys mean more credits?\n\nNo. Credits belong to the organisation, not to a key. A second key is for\nseparating environments and revoking one thing without disturbing another — see\n[Authentication](https:\u002F\u002Fdocs.formalogic.io\u002Fauthentication).\n\n## API keys\n\n### How does key rotation work?\n\nCreate the new key first, deploy it, then revoke the old one. Both work at the\nsame time in between, so nothing is down while you change over.\n\nThe console shows **Last used** for every key, which is how you confirm the old\none has actually stopped being called before you revoke it.\n\n### What happens when a key expires?\n\nIt stops authenticating. Calls presenting it answer `401`, exactly as a revoked\nkey does. A key's expiry date is set when it is created and is shown on the\n[API keys](https:\u002F\u002Fapp.formalogic.io\u002Fkeys) page.\n\n### I lost a key. Can you show it to me again?\n\nNo — it is shown once, when it is created, and never stored anywhere we can read\nit back from. Create a new one and revoke the old one.\n\n### What does revoking do to my usage history?\n\nNothing. Usage already recorded against a key stays attributed to it. Revoking\nstops the key working; it does not erase what it did, which is the question\nrevoking usually gets asked in order to answer.\n\n## Verdicts\n\n### What does `verified_by` mean?\n\nIt identifies the version of the rules your answer was checked against — not the build that produced\nit. Store it next to the artifact, and a year from now you can still say which version of the rules accepted that artifact.\n\n### Will the same request always give the same answer?\n\nNo, and it is not meant to. What is guaranteed is that whatever comes back has\nbeen checked before you see it. See [Citations](https:\u002F\u002Fdocs.formalogic.io\u002Fcitations).\n",1793819974057]