{"openapi":"3.1.0","info":{"version":"1.13.0","title":"API Reference | Neobits","contact":{"email":"hello@neobits.no","url":"https://neobits.ai"},"description":"<h1 id=\"get-started\" className=\"font-medium text-xl text-gray-900 mb-4\">Get Started with Neobits</h1>\n\n<div className=\"mb-4 text-gray-900\">Neobits offers innovative financial technology solutions that simplify data gathering for banks and financial institutions. Our platform leverages cutting-edge technology to reduce integration complexity and costs.</div>\n\n<div className=\"mb-6 text-gray-900\">Our technology stack includes secure API gateways, advanced data processing pipelines, and real-time analytics capabilities. We prioritize security, performance, and ease of use in all our offerings.</div>\n\n<h3 id=\"account-creation\" className=\"font-medium text-lg text-gray-900 mb-4\">Account Creation</h3>\n\n<div className=\"rounded-2xl p-5 mb-6 bg-white shadow\">\n  <div className=\"flex items-center\">\n    <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span>\n    <h4 className=\"font-medium text-gray-900\">Account Creation</h4>\n  </div>\n  <div className=\"pl-6\">\n    <div className=\"mb-2 text-gray-900\">Accounts must be created with Neobits customer support.</div>\n    <div className=\"text-gray-900\">To get started, please send an email to: hello@neobits.no</div>\n  </div>\n</div>\n\n<h3 id=\"our-apis\" className=\"font-medium text-lg text-gray-900 mb-4\">Our APIs</h3>\n\n\n\n<div className=\"mb-6 rounded-2xl p-5 bg-white shadow\">\n  <div className=\"flex items-center mb-2\">\n    <span className=\"font-mono uppercase pr-2 text-purple-500\">⚡</span>\n    <h4 className=\"font-medium text-gray-900\">Core API</h4>\n  </div>\n  <div className=\"pl-6\">\n    <div className=\"mb-3 text-gray-900\">Handles authentication (OAuth 2.0 client credentials or basic auth) and administration of clients.</div>\n    <ul className=\"list-disc pl-5 mb-3 space-y-1 text-gray-900\">\n      <li>Supports OAuth 2.0 client credentials</li>\n      <li>Supports basic authentication</li>\n      <li>Comprehensive client administration</li>\n      <li>Secure token management</li>\n    </ul>\n    <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Explore Core API Documentation →</a>\n  </div>\n</div>\n\n\n\n<div className=\"mb-6 rounded-2xl p-5 bg-white shadow\">\n  <div className=\"flex items-center mb-2\">\n    <span className=\"font-mono uppercase pr-2 text-success-600\">⚡</span>\n    <h4 className=\"font-medium text-gray-900\">Fuse API</h4>\n  </div>\n  <div className=\"pl-6\">\n    <div className=\"mb-3 text-gray-900\">Our innovative solution that connects disparate data sources into a unified, easy-to-consume format.</div>\n    <div className=\"mb-3 text-gray-900\">Learn more about Fuse's capabilities on our <a href=\"https://neobits.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" className=\"text-gray-900 hover:underline\">website</a>.</div>\n    <a href=\"/api-reference/tag/fuse\" className=\"text-purple-500 hover:underline\">Explore Fuse API Documentation →</a>\n  </div>\n</div>\n\n<div className=\"mb-6 rounded-2xl p-5 bg-white shadow\">\n  <div className=\"flex items-center mb-2\">\n    <span className=\"font-mono uppercase pr-2 text-red-500\">⚠️</span>\n    <h4 className=\"font-medium text-gray-900\">Error Handling</h4>\n  </div>\n  <div className=\"pl-6\">\n    <div className=\"mb-3 text-gray-900\">Our APIs use consistent error codes and messages to help you handle errors gracefully.</div>\n    <a href=\"/api-reference/errors\" className=\"text-purple-500 hover:underline\">View Error Reference →</a>\n  </div>\n</div>\n\n<h3 id=\"rate-limits\" className=\"font-medium text-lg text-gray-900 mb-4\">Rate Limits</h3>\n\n<div className=\"rounded-2xl p-5 mb-6 bg-white shadow\">\n  <div className=\"mb-3 text-gray-900\">Requests are rate limited per client IP address, currently at 10,000 requests per minute. A request over the limit gets <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">429 Too Many Requests</span> with a <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">Retry-After</span> header: the number of seconds to wait before you retry. Retrying sooner only extends the wait.</div>\n  <div className=\"mb-3 text-gray-900\">Core answers in its OAuth 2.0 error format, with <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">{'{\"error\":\"too_many_requests\",\"error_code\":\"429-000\"}'}</span>. Fuse and Logic use the standard error format, with <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">{'{\"errors\":[{\"name\":\"TooManyRequests\",\"code\":\"429-000\"}]}'}</span>. Because these requests never reach the API, the response has no timestamp, <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">moreInfo</span> or <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">X-Request-ID</span>.</div>\n  <div className=\"text-gray-900\">Reuse access tokens until they expire instead of requesting a new token for every call. For a 429 without <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">Retry-After</span>, retry with exponential backoff and jitter.</div>\n</div>\n\n<h3 id=\"retries-and-idempotency\" className=\"font-medium text-lg text-gray-900 mb-4\">Retries and Idempotency</h3>\n\n<div className=\"rounded-2xl p-5 mb-6 bg-white shadow\">\n  <div className=\"mb-3 text-gray-900\"><span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">GET</span> requests are safe to retry. Fuse inquiry creation and Logic executions and evaluations accept an <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">Idempotency-Key</span> header; any other retried <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">POST</span> is processed as a new request, so check whether the first attempt succeeded before you send it again.</div>\n  <div className=\"text-gray-900\">The <a href=\"/api-reference/tag/fuse#retries-and-idempotency\" className=\"text-purple-500 hover:underline\">Fuse</a> and <a href=\"/api-reference/tag/logic#handling-failures\" className=\"text-purple-500 hover:underline\">Logic</a> introductions describe how their write operations behave when repeated.</div>\n</div>\n\n<h3 id=\"versioning\" className=\"font-medium text-lg text-gray-900 mb-4\">Versioning</h3>\n\n<div className=\"rounded-2xl p-5 mb-6 bg-white shadow\">\n  <div className=\"mb-3 text-gray-900\">Every API includes its major version in the path, for example <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/v1/oauth2/token</span>, <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/logic/v1/deployments</span> and <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/fuse/v2/inquiries</span>. The exception is the discovery document and key set under <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/.well-known</span>, which stay at the token issuer <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core</span>.</div>\n  <div className=\"text-gray-900\">Changes, including deprecations, are listed in the release notes for <a href=\"/api-reference/tag/core-authz/releases\" className=\"text-purple-500 hover:underline\">Core</a> and <a href=\"/api-reference/tag/fuse/releases\" className=\"text-purple-500 hover:underline\">Fuse</a>.</div>\n</div>\n\n<h3 id=\"machine-readable-docs\" className=\"font-medium text-lg text-gray-900 mb-4\">Machine-Readable Docs</h3>\n\n<div className=\"rounded-2xl p-5 mb-6 bg-white shadow\">\n  <div className=\"mb-3 text-gray-900\">For code generators, API clients and AI coding agents:</div>\n  <ul className=\"list-disc pl-5 space-y-1 text-gray-900\">\n    <li>The <a href=\"/openapi.json\" className=\"text-purple-500 hover:underline\">OpenAPI 3.1 document</a> for every API, and one per API: <a href=\"/openapi/core-authz.json\" className=\"text-purple-500 hover:underline\">Core</a>, <a href=\"/openapi/fuse.json\" className=\"text-purple-500 hover:underline\">Fuse</a> and <a href=\"/openapi/logic.json\" className=\"text-purple-500 hover:underline\">Logic</a>.</li>\n    <li><a href=\"/llms.txt\" className=\"text-purple-500 hover:underline\">llms.txt</a>, an index of these docs in markdown, and <a href=\"/llms-full.txt\" className=\"text-purple-500 hover:underline\">llms-full.txt</a> with every page in one file.</li>\n    <li>Every page as markdown: append <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">.md</span> to its URL, for example <a href=\"/api-reference/get-started.md\" className=\"text-purple-500 hover:underline\">/api-reference/get-started.md</a>.</li>\n  </ul>\n</div>\n\n<h3 id=\"next-steps\" className=\"font-medium text-lg text-gray-900 mb-4\">Next Steps</h3>\n\n<div className=\"pl-6\">\n  <div className=\"mb-3 text-gray-900\">After creating your account, you can:</div>\n  <ol className=\"list-decimal pl-5 mb-3 space-y-2 text-gray-900\">\n    <li>Explore our API documentation</li>\n    <li>Request access credentials</li>\n    <li>Test the APIs in our sandbox environment</li>\n    <li>Integrate with your systems</li>\n  </ol>\n</div>\n"},"tags":[{"name":"Core (Authz)","releases":[{"version":"v1.0.0","date":"15-01-2025","features":["Initial release of Core API authorization server","Support for basic authentication","JWT token issuance with configurable expiration","Token introspection endpoint","OpenID Connect discovery endpoint","JWKS endpoint for public key retrieval"]},{"version":"v1.1.0","date":"05-02-2025","features":["Added support for role-based access control","Enhanced token validation with additional security checks","Improved error handling with detailed error messages"],"improvements":["Optimized token generation for better performance","Enhanced logging for better debugging"]},{"version":"v1.2.0","date":"27-02-2025","features":["Added client management API endpoints","Support for client registration and configuration","Added ability to revoke tokens"]},{"version":"v1.3.0","date":"18-03-2025","features":["Added support for OAuth 2.0 client credentials flow","Implemented scope-based authorization","Added resource-specific access tokens"],"improvements":["Optimized token validation for reduced latency","Enhanced token introspection with additional metadata"]},{"version":"v1.4.0","date":"12-04-2025","improvements":["Enhanced caching for better performance","Improved error responses with actionable information"]},{"version":"v1.5.0","date":"01-05-2025","improvements":["Enhanced token payload with additional claims"]},{"version":"v1.6.0","date":"09-12-2025","features":["Reorganized error codes to use HTTP status code prefixes in string format","Error codes now follow format `{HTTP_STATUS}-{XXX}` where XXX is 000-999","Each HTTP status code gets its own 1000-code range (e.g., 401-000 to 401-999 for Unauthorized errors)","Error responses now include `code` field with standardized error codes"]},{"version":"v1.7.0","date":"07-10-2026","improvements":[{"Token introspection follows RFC 7662 §2.2. Unknown, invalid, expired or disabled credentials are answered with 200 `{\"active\"":"false}` instead of 403 or 404, and inactive responses carry no other claims"},"Token introspection accepts the optional `token_type_hint` parameter, and a token that cannot be parsed is reported as inactive rather than rejected with 400"]},{"version":"v1.8.0","date":"27-10-2026","improvements":["The API includes its major version in the path, like Fuse. The OAuth 2.0 endpoints (authorize, token, revoke, introspect, userinfo), Basic introspection and the client endpoints move to `/core/v1/...` on every host, for example `/core/v1/oauth2/token`, and the discovery document advertises the new endpoints. The discovery document and key set stay at `/core/.well-known/...`"]}],"description":"{/* prettier-ignore */}\n<div id=\"oauth-20-authorization-server\" className=\"mb-8\">\n  <h2 className=\"font-medium text-xl text-gray-900 mb-4\">OAuth 2.0 Authorization Server</h2>\n  <div className=\"mb-6 text-gray-900\">The Authentication API is a full-featured OAuth 2.0 server implementation that specializes in secure machine-to-machine (M2M) authentication using the client credentials back channel flow. This flow is optimized for server-side applications that need to securely communicate with APIs without user interaction.</div>\n</div>\n\n<div id=\"key-capabilities\" className=\"mb-8\">\n  <h3 className=\"font-medium text-lg text-gray-900 mb-4\">Key Capabilities</h3>\n  <div className=\"mb-4 text-gray-900\">As a complete OAuth 2.0 authorization server, the API provides:</div>\n\n  <div className=\"rounded-2xl p-5 mb-6 bg-white shadow\">\n    <ul className=\"space-y-4 text-gray-900\">\n      <li className=\"flex\">\n        <span className=\"font-mono text-purple-500 mr-3\">→</span>\n        <div>\n          <span className=\"font-medium\">Token Endpoint</span>{' '}<span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/v1/oauth2/token</span>\n          <div className=\"mt-1\">Issues access tokens to clients using the client credentials grant type, supporting secure back channel communication</div>\n        </div>\n      </li>\n      <li className=\"flex\">\n        <span className=\"font-mono text-purple-500 mr-3\">→</span>\n        <div>\n          <span className=\"font-medium\">Token Introspection</span>{' '}<span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/v1/oauth2/introspect</span>\n          <div className=\"mt-1\">Validates tokens and returns metadata about their scope and validity</div>\n        </div>\n      </li>\n      <li className=\"flex\">\n        <span className=\"font-mono text-purple-500 mr-3\">→</span>\n        <div>\n          <span className=\"font-medium\">Client Management</span>\n          <div className=\"mt-1\">Comprehensive endpoints for creating, retrieving, updating, and deleting OAuth client applications with configurable scopes and credentials</div>\n        </div>\n      </li>\n      <li className=\"flex\">\n        <span className=\"font-mono text-purple-500 mr-3\">→</span>\n        <div>\n          <span className=\"font-medium\">Basic Authentication</span>\n          <div className=\"mt-1\">Alternative authentication method for simpler integration scenarios</div>\n        </div>\n      </li>\n      <li className=\"flex\">\n        <span className=\"font-mono text-purple-500 mr-3\">→</span>\n        <div>\n          <span className=\"font-medium\">Standard Discovery</span>\n          <div className=\"mt-1\">OpenID Connect discovery endpoints for automated configuration</div>\n        </div>\n      </li>\n    </ul>\n  </div>\n</div>\n\n<div id=\"getting-started\" className=\"pb-8\">\n  <h3 className=\"font-medium text-lg text-gray-900 mb-4\">Getting Started</h3>\n  <div className=\"rounded-2xl p-5 bg-white shadow\">\n    <div className=\"mb-4 text-gray-900\">To use the Authentication API, you'll need valid client credentials (client ID and client secret). To get your credentials, please send an email to hello@neobits.no with details about your integration needs.</div>\n    <div className=\"mb-2 text-gray-900\">For OAuth 2.0 authentication, your server application should:</div>\n    <ol className=\"list-decimal pl-6 space-y-2 text-gray-900\">\n      <li>Request an access token via the back channel using the{' '}<span className=\"font-mono bg-gray-100 px-2 py-1 rounded\">/core/v1/oauth2/token</span>{' '}endpoint with your client credentials</li>\n      <li>Use that token in the Authorization header for subsequent API requests</li>\n    </ol>\n  </div>\n</div>\n\n<div id=\"access-tokens\" className=\"pb-8\">\n  <h3 className=\"font-medium text-lg text-gray-900 mb-4\">Access Tokens</h3>\n  <div className=\"rounded-2xl p-5 bg-white shadow\">\n    <ul className=\"list-disc pl-6 space-y-2 text-gray-900\">\n      <li>Access tokens are RS256-signed JWTs. The <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">expires_in</span> field of the token response gives the lifetime in seconds.</li>\n      <li>Each client has a <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">max_session_duration</span>. It defaults to 28800 seconds (8 hours), which is also the maximum.</li>\n      <li>Send <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">session_duration</span> with the token request to get a shorter-lived token. The issued lifetime is the lower of the two values.</li>\n      <li>The client credentials grant issues no refresh token. Request a new token before the current one expires. Expired tokens are rejected with <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">401</span>.</li>\n      <li>The <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">resource</span> parameter becomes the token's audience (for example <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">https://api.prod.neobits.ai/logic</span>). A token is only accepted by the API it was issued for, and the resource must be registered for your client.</li>\n      <li>Test and production are separate environments with their own issuers and signing keys. Tokens from one are not accepted by the other.</li>\n    </ul>\n  </div>\n</div>\n\n<div id=\"scopes\" className=\"pb-8\">\n  <h3 className=\"font-medium text-lg text-gray-900 mb-4\">Scopes</h3>\n  <div className=\"rounded-2xl p-5 bg-white shadow\">\n    <div className=\"mb-4 text-gray-900\">Scopes are assigned to your client when it is created. A token carries only the scopes you request in the <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">scope</span> parameter (or the scopes of the requested <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">role</span>), so request every scope the endpoints you call need. Requesting a scope that is not assigned to your client fails with <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">invalid_scope</span>, and calling an endpoint without its scope returns <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">403</span>.</div>\n    <div className=\"mb-2 text-gray-900\">Core client management scopes:</div>\n    <ul className=\"list-disc pl-6 mb-4 space-y-2 text-gray-900\">\n      <li>List clients: <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">clients:read</span></li>\n      <li>Get a client: <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">client:read</span></li>\n      <li>Create a client: <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">client:write</span></li>\n      <li>Delete a client: <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">client:delete</span></li>\n    </ul>\n    <div className=\"text-gray-900\">See the <a href=\"/api-reference/tag/fuse\" className=\"text-purple-500 hover:underline\">Fuse</a> and <a href=\"/api-reference/tag/logic\" className=\"text-purple-500 hover:underline\">Logic</a> introductions for their scopes.</div>\n  </div>\n</div>\n\n<div id=\"signing-keys\" className=\"pb-8\">\n  <h3 className=\"font-medium text-lg text-gray-900 mb-4\">Signing Keys</h3>\n  <div className=\"rounded-2xl p-5 bg-white shadow\">\n    <div className=\"mb-4 text-gray-900\">Neobits APIs validate the tokens they receive. If your own services also verify Neobits tokens, use the published keys:</div>\n    <ol className=\"list-decimal pl-6 mb-4 space-y-2 text-gray-900\">\n      <li>Read <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">jwks_uri</span> and <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">issuer</span> from <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/.well-known/openid-configuration</span>.</li>\n      <li>Fetch the key set from <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/.well-known/jwks.json</span> and cache it.</li>\n      <li>Select the key whose <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">kid</span> matches the <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">kid</span> in the token header, and verify the RS256 signature.</li>\n      <li>Check that <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">iss</span> equals the issuer, <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">aud</span> contains your resource, and <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">exp</span> is in the future.</li>\n    </ol>\n    <div className=\"mb-4 text-gray-900\">If a token has a <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">kid</span> that is not in your cached key set, fetch the key set again before rejecting the token. Never hard-code a key.</div>\n    <div className=\"text-gray-900\">The key set currently contains one key. If that key is replaced, tokens signed with the previous key stop being accepted and Neobits APIs respond with <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">401</span>. Request a new token when that happens. You can also check a token with the <span className=\"font-mono text-sm bg-gray-100 px-2 py-1 rounded\">/core/v1/oauth2/introspect</span> endpoint instead of verifying it yourself.</div>\n  </div>\n</div>\n"},{"name":"Fuse","releases":[{"version":"v1.1.0","date":"24-03-2022","features":["Adds fields `estimatedDuration`, `estimatedRemainingDuration`, `estimatedNominalInterestRate`, `estimatedMonthlyPayment` to studentDebt, mortgageDebt and autoDebt."]},{"version":"v1.2.0","date":"25-03-2022","features":["Adds new field called `adjustedOriginalBalance` to mortgages."]},{"version":"v1.3.0","date":"31-03-2022","features":["Adds fields `sumAccruedInterestFromDebtCollectors`, `sumOwedMaintenancePayments`, `sumOwedUnderpaidTax`, `sumLatePaymentInterest` to debt object originating from sbl tax record.","Adds fields `yearlyUnemploymentBenefit`, `yearlyWorkAssessmentAllowance` to income object originating from sbl a-melding."]},{"version":"v1.4.0","date":"01-08-2022","features":["Adds new variable to person `hasAttachmentCharge`, which will be true if any liens in the movables registry are either of type `UTLEGG` or `UTPANTING`."]},{"version":"v1.5.0","date":"26-01-2023","features":["Updates interest rates for mortgages, student loans and car loans for Ikano. *Mortgages = 3.39%*, *Student loans = 2.32%*, *Car loans 5.19%*.","Consumers can now request a branded loader, which gives users visiting the loading screen a more coherent experience."]},{"version":"v1.6.0","date":"01-02-2023","improvements":["Adds documentation for family relations."]},{"version":"v1.7.0","date":"26-02-2023","features":["Consumers can now fetch data directly from the /person endpoint using the `code` query param. This allows consumers to fetch the same data several times via /person without incurring extra costs (`code` query param needed to not incurr extra costs)."]},{"version":"v1.7.1","date":"19-10-2023","features":["Updates interest rates for mortgages, student loans and car loans for Ikano. *Mortgages = 5.00%*, *Student loans = 3.95%*, *Car loans = 6.29%*"]},{"version":"v1.8.0","date":"20-10-2023","features":["Adds `housingCooperative` information on property. Documentation is updated with an `anyOf` specification for property type, which makes it easier to differentiate between self owned properties and housing cooperatives."]},{"version":"v1.9.0","date":"21-01-2024","features":["Switch to new losøre registry API"]},{"version":"v1.10.0","date":"22-05-2024","features":["Adds support for 2023 tax record changes"]},{"version":"v1.10.1","date":"23-06-2024","features":["Improved auto debt matching"]},{"version":"v1.11.0","date":"06-01-2025","features":["Adds GET /inquiry endpoint","Adds prerequisites property to Inquiry"]},{"version":"v1.12.0","date":"05-03-2025","features":["Adds support for 2024 tax record"]},{"version":"v1.13.0","date":"17-03-2025","features":["Adds support for oauth client credentials flow","Caching improvements"]},{"version":"v1.14.0","date":"09-12-2025","features":["Reorganized error codes to use HTTP status code prefixes in string format","Error codes now follow format `{HTTP_STATUS}-{XXX}` where XXX is 000-999","Each HTTP status code gets its own 1000-code range (e.g., 400-000 to 400-999 for Bad Request errors)","Error responses now include `code` field with standardized error codes"]},{"version":"v1.15.0","date":"09-03-2026","features":["Adds `originalBalanceByOwnership` and `estimatedBalanceByOwnership` to mortgage debt, reflecting the balance adjusted by the property ownership share"]},{"version":"v1.16.0","date":"10-03-2026","features":["Adds support for 2025 tax record","New income fields `ungdomsprogramytelse` and `livsvarigAvtalefestetPensjonIOffentligSektor` are now included in total income","Removed `loennsinntektUtenTrygdeavgiftspliktOgMedTrekkplikt` from salary calculation (field removed by Skatteetaten in 2025)"]}],"description":"<div className=\"mb-6 text-gray-900\">\n  Fuse is a unified data aggregation API that provides fully structured,\n  calculated, and cross-referenced person data through a single integration\n  point. Built for banks, lenders, and regulated environments, Fuse delivers\n  actionable insights that power better decision-making across your\n  organization.\n</div>\n\n<div className=\"mb-6 text-gray-900\">\n  Instead of connecting to 10+ separate APIs to gather customer information,\n  Fuse consolidates all your data needs into one streamlined\n  integration—significantly reducing development time and ongoing maintenance\n  overhead.\n</div>\n\n<br />\n\n<h2 id=\"key-benefits\" className=\"text-xl font-medium text-gray-900 mb-4\">Key Benefits</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  <span className=\"font-medium\">Unified Customer Profile</span> — Fuse\n  incorporates advanced logic for inferring, calculating, and matching data from\n  diverse sources to construct a comprehensive customer profile. Data is\n  automatically cross-referenced and validated to ensure accuracy and\n  completeness.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  <span className=\"font-medium\">Single Integration Point</span> — Access\n  personal data from multiple registries through one API. This reduces the\n  complexity of managing multiple vendor relationships, credentials, and\n  integration contracts.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  <span className=\"font-medium\">Cost Efficiency</span> — Repeated and duplicate\n  customer applications often lead to higher API expenses with minimal benefit.\n  Fuse enables you to efficiently search and reuse data from previous inquiries\n  at no additional cost, optimizing your data spend.\n</div>\n\n<br />\n\n<h2 id=\"core-concepts\" className=\"text-xl font-medium text-gray-900 mb-4\">Core Concepts</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  Fuse is built around two primary resources:{' '}\n  <span className=\"font-medium\">Inquiries</span> and{' '}\n  <span className=\"font-medium\">Persons</span>.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  <span className=\"font-medium\">Inquiry</span> — An Inquiry represents a data\n  collection process for a specific person. When you need to gather information\n  about a customer, you create an Inquiry. The Inquiry tracks what data has been\n  requested, what consent has been obtained, and serves as the container for all\n  fetched person data.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  <span className=\"font-medium\">Person</span> — A Person represents the\n  individual whose data is being collected. Person data is always accessed\n  within the context of an Inquiry, ensuring proper consent and audit trails.\n</div>\n\n<br />\n\n<h2 id=\"consent-flow\" className=\"text-xl font-medium text-gray-900 mb-4\">Consent Flow</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  Some data sources require explicit consent from the end user before their data\n  can be accessed. When fetching consent-protected information, the following\n  flow applies:\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  1. <span className=\"font-medium\">Create an Inquiry</span> — Initialize an\n  Inquiry for the person using their national identity number.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  2. <span className=\"font-medium\">Redirect for Consent</span> — If the\n  requested data requires consent, direct the end user to complete the consent\n  process. The Inquiry status will indicate when consent is pending.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  3. <span className=\"font-medium\">User Completes Consent</span> — The end user\n  authenticates and grants permission for their data to be accessed.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  4. <span className=\"font-medium\">Fetch Person Data</span> — Once the Inquiry\n  is completed, you can fetch the person data. Fuse aggregates information from\n  all connected registries and returns a unified response.\n</div>\n\n<br />\n\n<h2 id=\"data-reuse\" className=\"text-xl font-medium text-gray-900 mb-4\">Data Reuse</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  Previously fetched data remains available within an Inquiry, allowing you to\n  query additional information without re-fetching from source systems. You can\n  also search for existing Inquiries to reuse data from previous requests,\n  reducing costs and improving response times.\n</div>\n\n<br />\n\n<h2 id=\"getting-started\" className=\"text-xl font-medium text-gray-900 mb-4\">Getting Started</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  In order to consume this API, you must register Neobits as a provider in\n  Altinn. Access must be provided for the Norwegian Population Registry and\n  Samtykkebasert Lånesøknad.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\n  Once your Altinn access is configured, you can authenticate using your API\n  credentials and begin making requests to the Fuse endpoints documented below.\n</div>\n\n<br />\n\n<h2 id=\"authentication-and-scopes\" className=\"text-xl font-medium text-gray-900 mb-4\">Authentication and Scopes</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  Fuse endpoints use Basic authentication with your client's username and\n  password. Each endpoint requires a scope, which must be assigned to your\n  client directly or through its role. A missing scope returns{' '}\n  <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">403</code>.\n</div>\n\n<ul className=\"list-disc pl-5 space-y-2 mb-4 text-gray-900\">\n  <li>Create an inquiry: <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">inquiry:write</code></li>\n  <li>Get an inquiry: <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">inquiry:read</code></li>\n  <li>Complete an inquiry: <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">inquiry:update</code></li>\n  <li>Get a person: <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">person:read</code></li>\n</ul>\n\n<br />\n\n<h2 id=\"retries-and-idempotency\" className=\"text-xl font-medium text-gray-900 mb-4\">Retries and Idempotency</h2>\n\n<div className=\"mb-4 text-gray-900\">\n  Creating an inquiry supports an <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">Idempotency-Key</code> header.\n  Send a unique key of up to 128 characters, such as a UUID, with each{' '}\n  <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">POST /fuse/v2/inquiries</code> and send the same key when you retry that request.\n  Keep the following in mind before retrying a request:\n</div>\n\n<ul className=\"list-disc pl-5 space-y-2 mb-4 text-gray-900\">\n  <li>\n    A repeated key returns{' '}\n    <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">201 Created</code> with the inquiry the first\n    request created, in its current state. Its notifications are not sent again.\n    Keys are scoped to your client and do not expire.\n  </li>\n  <li>\n    Repeating a key with another <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">ssn</code> or{' '}\n    <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">externalId</code> returns{' '}\n    <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">409 Conflict</code> with code <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">409-002</code>. Send a new key instead of retrying.\n  </li>\n  <li>\n    A non-2xx response does not store the key, so a retry with the same key\n    creates the inquiry and sends its notifications. If sending notifications\n    fails, the inquiry the failed request created is kept but no longer holds the key.\n  </li>\n  <li>\n    Repeating a key while the first request is still sending its notifications, or while it fails, returns{' '}\n    <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">409 Conflict</code> with code <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">409-000</code>. Retry it with the same key.\n  </li>\n  <li>\n    Without the header, every <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">POST /fuse/v2/inquiries</code> creates\n    a new inquiry with a new ID and sends the requested notifications again.\n    The <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">externalId</code> is stored as given;\n    it is not required to be unique and does not deduplicate requests.\n  </li>\n  <li>\n    <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">GET</code> requests are safe to retry.\n  </li>\n  <li>\n    An inquiry can be completed once. Completing it again returns{' '}\n    <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">409 Conflict</code>,\n    and a completion is recorded for usage only once per inquiry.\n  </li>\n</ul>\n"},{"name":"Logic","description":"<div className=\"space-y-6 [&_a]:text-purple-500 [&_a]:underline [&_table]:w-full [&_table]:text-sm [&_th]:border-b [&_th]:border-gray-200 [&_th]:py-3 [&_th]:pr-4 [&_th]:text-left [&_td]:border-b [&_td]:border-gray-200 [&_td]:py-3 [&_td]:pr-4 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:pl-6\">\n\nLogic runs your decision models against JSON input. Use its API to evaluate a version, manage environments and deployments, and execute a deployed decision from your application.\n\n<h2 id=\"concepts\" className=\"text-xl font-medium\">Core concepts</h2>\n\n- **Decision:** a model that transforms input facts into a result. Author it in the Logic app.\n- **Version:** a saved snapshot, shown as v1, v2, and so on. API requests use the numeric version. Version 0 is the editable working copy; use a saved version for reproducible runs.\n- **Environment:** a workspace resource such as Test or Production. These names are yours to choose and are separate from the Neobits test and production API hosts.\n- **Deployment:** connects a decision version to an environment. Creating one through REST also creates immediate 100% traffic routing.\n- **Evaluation:** runs the requested version without deployment routing and returns its result and available trace.\n- **Execution:** runs the version selected by an environment's deployment routing and records the outcome.\n\n<h2 id=\"authentication\" className=\"text-xl font-medium\">Authentication and workspace access</h2>\n\nObtain an access token through [Core authentication](/api-reference/operation/createToken/method/post). Configure your API client for Logic and grant the scopes needed for its operations. Send `Authorization: Bearer <access_token>` and `X-Workspace-Id` on every request. The token must be valid for the target API and tenant, and its principal must have access to the workspace. End-user tokens are authorized through workspace policies.\n\n| Operation | Service-token scope |\n| --- | --- |\n| List environments / get environment | `environments:read` / `environment:read` |\n| Create / update / delete environment | `environment:write` / `environment:update` / `environment:delete` |\n| List deployments / get deployment | `deployments:read` / `deployment:read` |\n| Create / update / delete deployment | `deployment:write` / `deployment:update` / `deployment:delete` |\n| Execute / evaluate | `execution:write` / `evaluation:write` |\n\nTokens live for at most the client's `max_session_duration` (8 hours by default); see [access tokens](/api-reference/tag/core-authz#access-tokens) for lifetime and scope rules.\n\nThe test API base URL is `https://api.test.neobits.ai`; production uses `https://api.prod.neobits.ai`. Logic paths start with `/logic`. JSON field names are camelCase.\n\nA missing or malformed workspace header returns 400. Authentication failures return 401; insufficient access returns 403. Environment and deployment reads are limited to the active workspace.\n\n<h2 id=\"walkthrough\" className=\"text-xl font-medium\">Evaluate, deploy, and execute</h2>\n\nStart with a standalone decision and a saved version in the Logic app. Copy its decision ID from the decision details and use the numeric saved version from its version history. Use your active workspace ID for `WORKSPACE_ID`. The following example assumes a decision that accepts an `age` fact and returns an `eligible` result; use the input required by your own decision.\n\n```bash\nAPI_URL='https://api.test.neobits.ai'\nACCESS_TOKEN='<your-access-token>'\nWORKSPACE_ID='<your-workspace-uuid>'\nDECISION_ID='<your-decision-uuid>'\nVERSION=1\n```\n\n<h3 className=\"text-lg font-medium\">1. Create an environment</h3>\n\nOnly the name is required. Omitting the color selects a random supported theme color. Copy the returned `id` into `ENVIRONMENT_ID`.\n\n```bash\ncurl --request POST \"$API_URL/logic/v1/environments\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"name\":\"Test\",\"description\":\"Integration testing\",\"color\":\"#2563eb\"}'\n```\n\nExample 201 response:\n\n```json\n{\n  \"id\": \"019991b1-0000-7000-8000-000000000002\",\n  \"workspaceId\": \"019991b1-0000-7000-8000-000000000001\",\n  \"name\": \"Test\",\n  \"description\": \"Integration testing\",\n  \"color\": \"#2563eb\",\n  \"createdAt\": \"2026-09-30T10:00:00.000Z\",\n  \"updatedAt\": \"2026-09-30T10:00:00.000Z\"\n}\n```\n\n```bash\nENVIRONMENT_ID='<id-from-the-create-environment-response>'\n```\n\n<h3 className=\"text-lg font-medium\">2. Evaluate the saved version</h3>\n\nEvaluation requires no deployment. The REST endpoint has no environment parameter, so it does not resolve environment configuration variables. Evaluations run the decision's logic and can call external integrations; they are not side-effect-free dry runs.\n\n```bash\ncurl --request POST \"$API_URL/logic/v1/decisions/$DECISION_ID/evaluations\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header 'Content-Type: application/json' \\\n  --data \"{\\\"version\\\":$VERSION,\\\"fact\\\":{\\\"age\\\":25}}\"\n```\n\nThe 201 response includes `id`, `status`, `result`, `performance`, and `trace`. A successful result might be `{\"eligible\":true}`. Trace entries depend on the model's nodes; configuration secrets are redacted.\n\n<h3 className=\"text-lg font-medium\">3. Deploy the version</h3>\n\nCreating a deployment immediately directs 100% of traffic for this decision/environment pair to the selected version. Supply the caller attribution in `deployedBy`; it is not inferred from the token. Copy the returned `id` into `DEPLOYMENT_ID`.\n\n```bash\ncurl --request POST \"$API_URL/logic/v1/deployments\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header 'Content-Type: application/json' \\\n  --data \"{\\\"decisionId\\\":\\\"$DECISION_ID\\\",\\\"version\\\":$VERSION,\\\"environmentId\\\":\\\"$ENVIRONMENT_ID\\\",\\\"name\\\":\\\"Eligibility v1\\\",\\\"message\\\":\\\"Initial deployment\\\",\\\"deployedBy\\\":\\\"Integration service\\\"}\"\n```\n\nBoth the environment and decision snapshot must exist in the active workspace. Deploy sub-decisions through their parent. A deployment version of `null` or `0` selects the working copy; the response normalizes `null` to `0`. The REST API does not accept rollout percentages or scheduling settings.\n\n```bash\nDEPLOYMENT_ID='<id-from-the-create-deployment-response>'\n```\n\n<h3 className=\"text-lg font-medium\">4. Execute the deployed decision</h3>\n\nExecution resolves configuration variables for the environment and follows its deployment routing.\n\n```bash\ncurl --request POST \"$API_URL/logic/v1/$ENVIRONMENT_ID/decisions/$DECISION_ID/executions\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"fact\":{\"age\":25}}'\n```\n\nExample 201 response:\n\n```json\n{\n  \"id\": \"019991b1-0000-7000-8000-000000000005\",\n  \"decisionId\": \"019991b1-0000-7000-8000-000000000003\",\n  \"status\": \"COMPLETED\",\n  \"result\": {\"eligible\": true},\n  \"performance\": \"1.2ms\",\n  \"createdAt\": \"2026-09-30T10:00:00.000Z\",\n  \"updatedAt\": \"2026-09-30T10:00:00.000Z\"\n}\n```\n\n<h2 id=\"pagination\" className=\"text-xl font-medium\">List and paginate resources</h2>\n\nEnvironment and deployment lists accept `size` (default 50, maximum 5,000) and either `before` or `after`. Results are ordered by ascending ID. The cursors are exclusive; use `page.after` for the next page and `page.before` for the preceding page. Responses use `{ data, page }`, with `page.size` equal to the returned count and `page.total` equal to the workspace total.\n\n```bash\ncurl \"$API_URL/logic/v1/deployments?size=50\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\"\n\nAFTER='<page.after-from-the-previous-response>'\ncurl \"$API_URL/logic/v1/deployments?size=50&after=$AFTER\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\"\n```\n\nA non-null cursor does not guarantee another page exists. An empty page contains `data: []`, `size: 0`, and null cursors, while `total` still reports the workspace total. These lists do not accept decision/environment filters or custom sorting. Use `GET /logic/v1/environments/{id}` or `GET /logic/v1/deployments/{id}` to retrieve an individual resource.\n\n<h2 id=\"updates-and-deletion\" className=\"text-xl font-medium\">Update and delete resources</h2>\n\nPATCH requests require at least one supported field. Omitted fields stay unchanged. Use `null` or an empty string to clear an environment description or a deployment message. Unknown fields are rejected.\n\n```bash\ncurl --request PATCH \"$API_URL/logic/v1/environments/$ENVIRONMENT_ID\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"description\":\"Shared integration environment\"}'\n\ncurl --request PATCH \"$API_URL/logic/v1/deployments/$DEPLOYMENT_ID\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"message\":\"Verified by integration tests\"}'\n```\n\nDeployment PATCH also accepts `decisionId`, `version`, `environmentId`, `name`, and `deployedBy`. It validates the resulting references, but updates only the deployment record; existing routing is not recreated or changed. Create a new deployment when you want to activate another version with immediate full-traffic routing.\n\nDeleting an environment also deletes its deployments and routings. Deleting a deployment removes its routings and can change the version that receives future traffic. Both deletions return **409 Conflict** when linked execution history prevents removal. The deployment executed in this walkthrough therefore cannot be deleted through these calls while that history remains.\n\nFor a disposable resource without execution history:\n\n```bash\ncurl --request DELETE \"$API_URL/logic/v1/deployments/$DEPLOYMENT_ID\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\"\n\ncurl --request DELETE \"$API_URL/logic/v1/environments/$ENVIRONMENT_ID\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\"\n```\n\nSuccessful deletion returns 204 with no body. Repeating the deletion for an absent resource in the active workspace also returns 204.\n\n<h2 id=\"handling-failures\" className=\"text-xl font-medium\">Handle HTTP and decision failures</h2>\n\nCheck both the HTTP status and the result's `status`. A 201 response can contain `status: \"FAILED\"` and a `result.error` message when a node fails. An execution may include a diagnostic trace for that failure; successful executions normally omit it. Evaluations return their available trace in the `trace` field.\n\nFor example, a failed evaluation can return:\n\n```json\n{\n  \"id\": \"019991b1-0000-7000-8000-000000000006\",\n  \"status\": \"FAILED\",\n  \"result\": {\"error\": \"The external integration failed.\"},\n  \"performance\": \"4.2ms\",\n  \"trace\": null\n}\n```\n\nA retried execution or evaluation runs the decision again, including any external integration calls, unless you send an `Idempotency-Key` header. Choose a unique key of up to 128 characters per request, for example a UUID, and send the same key on every retry:\n\n```bash\ncurl --request POST \"$API_URL/logic/$ENVIRONMENT_ID/decisions/$DECISION_ID/executions\" \\\n  --header \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  --header \"X-Workspace-Id: $WORKSPACE_ID\" \\\n  --header \"Idempotency-Key: $REQUEST_KEY\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"fact\":{\"amount\":5}}'\n```\n\n- A repeated key in the same workspace returns the stored 201 response, including a `FAILED` result, without running the decision again.\n- Reusing a key for a different decision, environment, version, or `fact` returns **409 Conflict**.\n- A non-2xx response does not store the key, so a retry with the same key runs the decision.\n- If a retry arrives while the first request is still running, both can run the decision. Only the first stored result is kept, and both return it.\n\nA hard engine failure can instead produce a non-2xx response. Do not assume every failed evaluation was persisted. Missing deployments, routing, or decision versions can return 404. For HTTP errors, use the shared [error response format](/api-reference/errors) and the status codes listed on each operation.\n\n</div>\n"}],"servers":[{"url":"https://api.test.neobits.ai"},{"url":"https://api.prod.neobits.ai"}],"paths":{"/logic/v1/environments":{"get":{"operationId":"logic-environments-list","tags":["Logic"],"summary":"List environments","description":"Returns resources in the active workspace in ascending ID order. Use `size` and either `before` or `after` for pagination. `page.size` is the returned count; `page.total` is the workspace total. Cursors are exclusive and are null for an empty page. There are no additional filters or sort parameters.\n\nRequired service-token scope: `environments:read`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"size","in":"query","required":false,"description":"Maximum resources to return (1–5,000). Defaults to 50.","schema":{"type":"integer","minimum":1,"maximum":5000,"default":50},"example":50},{"name":"before","in":"query","required":false,"description":"Exclusive resource ID cursor. Use page.before from a previous response. Cannot be combined with after.","schema":{"type":"string","format":"uuid"}},{"name":"after","in":"query","required":false,"description":"Exclusive resource ID cursor. Use page.after from a previous response. Cannot be combined with before.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Environment page.","content":{"application/json":{"schema":{"title":"LogicEnvironmentPage","type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"title":"LogicEnvironment","type":"object","required":["id","workspaceId","name","description","color","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Environment identifier.","example":"019991b1-0000-7000-8000-000000000002"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}},"page":{"title":"LogicPage","type":"object","required":["size","total","before","after"],"properties":{"size":{"type":"integer","minimum":0,"description":"Number of resources returned in this response.","example":1},"total":{"type":"integer","minimum":0,"description":"Total resources in the active workspace, independent of the cursor.","example":1},"before":{"type":["string","null"],"format":"uuid","description":"First returned ID. Use as before to request the preceding page. Null for an empty page.","example":"019991b1-0000-7000-8000-000000000002"},"after":{"type":["string","null"],"format":"uuid","description":"Last returned ID. Use as after to request the following page. Null for an empty page. A non-null cursor does not guarantee another page exists.","example":"019991b1-0000-7000-8000-000000000002"}}}},"example":{"data":[{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}],"page":{"size":1,"total":1,"before":"019991b1-0000-7000-8000-000000000002","after":"019991b1-0000-7000-8000-000000000002"}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"post":{"operationId":"logic-environments-create","tags":["Logic"],"summary":"Create an environment","description":"Creates an environment in the active workspace. Only `name` is required. Omitting `color` selects a random supported theme color. Unknown fields are rejected.\n\nRequired service-token scope: `environment:write`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"CreateLogicEnvironment","type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"}},"example":{"name":"Test","description":"Integration testing","color":"#2563eb"}}}}},"responses":{"201":{"description":"Environment created.","content":{"application/json":{"schema":{"title":"LogicEnvironment","type":"object","required":["id","workspaceId","name","description","color","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Environment identifier.","example":"019991b1-0000-7000-8000-000000000002"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/logic/v1/environments/{id}":{"get":{"operationId":"logic-environments-get","tags":["Logic"],"summary":"Get an environment","description":"Retrieves one environment in the active workspace. Returns 404 when it is not found in that workspace.\n\nRequired service-token scope: `environment:read`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"id","in":"path","required":true,"description":"Environment identifier.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000002"}],"responses":{"200":{"description":"Environment details.","content":{"application/json":{"schema":{"title":"LogicEnvironment","type":"object","required":["id","workspaceId","name","description","color","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Environment identifier.","example":"019991b1-0000-7000-8000-000000000002"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"patch":{"operationId":"logic-environments-update","tags":["Logic"],"summary":"Update an environment","description":"Partially updates an environment in the active workspace. Supply at least one of `name`, `description`, or `color`; omitted fields remain unchanged. Clear the description with null or an empty string. Unknown fields are rejected.\n\nRequired service-token scope: `environment:update`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"id","in":"path","required":true,"description":"Environment identifier.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000002"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"UpdateLogicEnvironment","type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"}},"example":{"description":"Shared integration environment"}}}}},"responses":{"200":{"description":"Environment updated.","content":{"application/json":{"schema":{"title":"LogicEnvironment","type":"object","required":["id","workspaceId","name","description","color","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Environment identifier.","example":"019991b1-0000-7000-8000-000000000002"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"delete":{"operationId":"logic-environments-delete","tags":["Logic"],"summary":"Delete an environment","description":"Deletes the environment and cascades to its deployments and routings. Returns 409 if linked execution history prevents deletion; nothing is deleted in that case. Deletion is idempotent: an absent ID in the active workspace also returns 204 with no response body.\n\nRequired service-token scope: `environment:delete`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"id","in":"path","required":true,"description":"Environment identifier.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000002"}],"responses":{"204":{"description":"Deleted or already absent. No response body."},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"409":{"description":"Conflict","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ConflictResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Conflict"],"example":"Conflict"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["409-000","409-001","409-002"],"example":"409-000"},"message":{"type":"string","example":"A resource with this identifier already exists"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/logic/v1/deployments":{"get":{"operationId":"logic-deployments-list","tags":["Logic"],"summary":"List deployments","description":"Returns resources in the active workspace in ascending ID order. Use `size` and either `before` or `after` for pagination. `page.size` is the returned count; `page.total` is the workspace total. Cursors are exclusive and are null for an empty page. There are no additional filters or sort parameters.\n\nRequired service-token scope: `deployments:read`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"size","in":"query","required":false,"description":"Maximum resources to return (1–5,000). Defaults to 50.","schema":{"type":"integer","minimum":1,"maximum":5000,"default":50},"example":50},{"name":"before","in":"query","required":false,"description":"Exclusive resource ID cursor. Use page.before from a previous response. Cannot be combined with after.","schema":{"type":"string","format":"uuid"}},{"name":"after","in":"query","required":false,"description":"Exclusive resource ID cursor. Use page.after from a previous response. Cannot be combined with before.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deployment page.","content":{"application/json":{"schema":{"title":"LogicDeploymentPage","type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"title":"LogicDeployment","type":"object","required":["id","workspaceId","decisionId","version","environmentId","name","message","deployedBy","milestone","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Deployment identifier.","example":"019991b1-0000-7000-8000-000000000004"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1},"milestone":{"type":"integer","const":0,"description":"Snapshot milestone; always 0 for a deployment.","example":0},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}},"page":{"title":"LogicPage","type":"object","required":["size","total","before","after"],"properties":{"size":{"type":"integer","minimum":0,"description":"Number of resources returned in this response.","example":1},"total":{"type":"integer","minimum":0,"description":"Total resources in the active workspace, independent of the cursor.","example":1},"before":{"type":["string","null"],"format":"uuid","description":"First returned ID. Use as before to request the preceding page. Null for an empty page.","example":"019991b1-0000-7000-8000-000000000002"},"after":{"type":["string","null"],"format":"uuid","description":"Last returned ID. Use as after to request the following page. Null for an empty page. A non-null cursor does not guarantee another page exists.","example":"019991b1-0000-7000-8000-000000000002"}}}},"example":{"data":[{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}],"page":{"size":1,"total":1,"before":"019991b1-0000-7000-8000-000000000004","after":"019991b1-0000-7000-8000-000000000004"}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"post":{"operationId":"logic-deployments-create","tags":["Logic"],"summary":"Create a deployment","description":"Creates a deployment and its routing atomically. It immediately routes 100% of traffic to this version for the decision/environment pair. The environment and decision snapshot must exist in the active workspace; sub-decisions cannot be deployed directly. Supply `deployedBy` explicitly. `version: null` is normalized to 0 (the working copy). Routing percentage and scheduling fields are not accepted.\n\nRequired service-token scope: `deployment:write`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"CreateLogicDeployment","type":"object","additionalProperties":false,"required":["decisionId","version","environmentId","name","deployedBy"],"properties":{"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1}},"example":{"decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service"}}}}},"responses":{"201":{"description":"Deployment created.","content":{"application/json":{"schema":{"title":"LogicDeployment","type":"object","required":["id","workspaceId","decisionId","version","environmentId","name","message","deployedBy","milestone","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Deployment identifier.","example":"019991b1-0000-7000-8000-000000000004"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1},"milestone":{"type":"integer","const":0,"description":"Snapshot milestone; always 0 for a deployment.","example":0},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/logic/v1/deployments/{id}":{"get":{"operationId":"logic-deployments-get","tags":["Logic"],"summary":"Get a deployment","description":"Retrieves one deployment in the active workspace. Returns 404 when it is not found in that workspace.\n\nRequired service-token scope: `deployment:read`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"id","in":"path","required":true,"description":"Deployment identifier.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000004"}],"responses":{"200":{"description":"Deployment details.","content":{"application/json":{"schema":{"title":"LogicDeployment","type":"object","required":["id","workspaceId","decisionId","version","environmentId","name","message","deployedBy","milestone","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Deployment identifier.","example":"019991b1-0000-7000-8000-000000000004"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1},"milestone":{"type":"integer","const":0,"description":"Snapshot milestone; always 0 for a deployment.","example":0},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"patch":{"operationId":"logic-deployments-update","tags":["Logic"],"summary":"Update a deployment","description":"Partially updates a deployment in the active workspace. Supply at least one of `decisionId`, `version`, `environmentId`, `name`, `message`, or `deployedBy`. Omitted fields remain unchanged; null clears `message` or selects the working copy for `version`. Resulting environment and decision references are validated. This updates the deployment record only; it does not recreate or change its routing. Create a new deployment to activate another version with immediate full-traffic routing.\n\nRequired service-token scope: `deployment:update`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"id","in":"path","required":true,"description":"Deployment identifier.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000004"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"UpdateLogicDeployment","type":"object","additionalProperties":false,"minProperties":1,"properties":{"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1}},"example":{"message":"Verified by integration tests"}}}}},"responses":{"200":{"description":"Deployment updated.","content":{"application/json":{"schema":{"title":"LogicDeployment","type":"object","required":["id","workspaceId","decisionId","version","environmentId","name","message","deployedBy","milestone","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Deployment identifier.","example":"019991b1-0000-7000-8000-000000000004"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1},"milestone":{"type":"integer","const":0,"description":"Snapshot milestone; always 0 for a deployment.","example":0},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"delete":{"operationId":"logic-deployments-delete","tags":["Logic"],"summary":"Delete a deployment","description":"Deletes the deployment and its routings. Returns 409 if linked execution history prevents deletion. Removing a deployment can change which remaining deployment handles future executions, or leave the decision without a deployment in that environment. Deletion is idempotent: an absent ID in the active workspace also returns 204 with no response body.\n\nRequired service-token scope: `deployment:delete`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"id","in":"path","required":true,"description":"Deployment identifier.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000004"}],"responses":{"204":{"description":"Deleted or already absent. No response body."},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"409":{"description":"Conflict","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ConflictResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Conflict"],"example":"Conflict"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["409-000","409-001","409-002"],"example":"409-000"},"message":{"type":"string","example":"A resource with this identifier already exists"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/logic/v1/{environmentId}/decisions/{decisionId}/executions":{"post":{"operationId":"logic-executions-create","tags":["Logic"],"summary":"Execute a decision","description":"Runs the decision using the deployment routing configured for the selected environment. Environment configuration variables are resolved for the run. A deployment and routing must exist; sub-decisions cannot be executed directly. The call is synchronous and persists an execution. Check `status` even on HTTP 201: a node failure can return `FAILED` with `result.error` and a trace. Hard engine failures can instead return a non-2xx error. Successful runs normally omit `trace`. Send an `Idempotency-Key` header to retry safely: a repeated key returns the stored execution without running the decision again.\n\nRequired service-token scope: `execution:write`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"Idempotency-Key","in":"header","required":false,"description":"Client-chosen key, such as a UUID, that makes a retry safe. A repeated key returns the stored 201 response without running the request again. Reusing a key with a different request returns 409. A non-2xx response does not store the key.","schema":{"type":"string","minLength":1,"maxLength":128},"example":"7f9c2ba4-e88f-4f2e-9b1d-1f3c6a0e5d21"},{"name":"environmentId","in":"path","required":true,"description":"Environment containing the deployment.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000002"},{"name":"decisionId","in":"path","required":true,"description":"Standalone decision to execute.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000003"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"CreateLogicExecution","type":"object","required":["fact"],"properties":{"fact":{"type":"object","additionalProperties":true,"description":"Input facts expected by your decision. The example assumes a decision accepting age and returning eligible; replace it with your own input.","example":{"age":25}}},"example":{"fact":{"age":25}}}}}},"responses":{"201":{"description":"Execution recorded; inspect status for COMPLETED or FAILED.","content":{"application/json":{"schema":{"title":"LogicExecution","type":"object","required":["id","decisionId","status","result","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Persisted execution identifier.","example":"019991b1-0000-7000-8000-000000000005"},"decisionId":{"type":"string","format":"uuid","description":"Executed decision.","example":"019991b1-0000-7000-8000-000000000003"},"status":{"type":"string","enum":["COMPLETED","FAILED"],"description":"Check this field even when the HTTP status is 201.","example":"COMPLETED"},"result":{"description":"Decision-specific output. When status is FAILED, contains an error property describing the failure.","example":{"eligible":true},"type":"object","additionalProperties":true},"performance":{"type":"string","description":"Engine-reported duration.","example":"1.2ms"},"trace":{"type":"object","additionalProperties":true,"description":"Diagnostic trace for a failed execution, when available. Omitted for successful executions.","example":{}},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000005","decisionId":"019991b1-0000-7000-8000-000000000003","status":"COMPLETED","result":{"eligible":true},"performance":"1.2ms","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"409":{"description":"Conflict","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ConflictResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Conflict"],"example":"Conflict"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["409-000","409-001","409-002"],"example":"409-000"},"message":{"type":"string","example":"A resource with this identifier already exists"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/logic/v1/decisions/{decisionId}/evaluations":{"post":{"operationId":"logic-evaluations-create","tags":["Logic"],"summary":"Evaluate a decision","description":"Evaluates the supplied decision version synchronously without deployment routing. Versions 1 and above select saved versions; 0 selects the working copy. The REST request has no environment parameter and does not resolve environment configuration variables. Evaluation runs the decision logic and can call external integrations; it is not a side-effect-free dry run. Check `status` even on HTTP 201: node failures can return `FAILED` with `result.error`. Hard engine failures can instead return a non-2xx error. The response includes the available redacted per-node trace. Send an `Idempotency-Key` header to retry safely: a repeated key returns the stored evaluation without running the decision again.\n\nRequired service-token scope: `evaluation:write`. End-user access is checked against workspace policies. Send a Bearer token and the `X-Workspace-Id` header.","security":[{"bearer":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":true,"description":"Active workspace UUID. The authenticated principal must have access to this workspace.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000001"},{"name":"Idempotency-Key","in":"header","required":false,"description":"Client-chosen key, such as a UUID, that makes a retry safe. A repeated key returns the stored 201 response without running the request again. Reusing a key with a different request returns 409. A non-2xx response does not store the key.","schema":{"type":"string","minLength":1,"maxLength":128},"example":"7f9c2ba4-e88f-4f2e-9b1d-1f3c6a0e5d21"},{"name":"decisionId","in":"path","required":true,"description":"Decision whose version will be evaluated.","schema":{"type":"string","format":"uuid"},"example":"019991b1-0000-7000-8000-000000000003"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"CreateLogicEvaluation","type":"object","required":["version","fact"],"properties":{"version":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Decision version: 1 and above select saved versions; 0 selects the editable working copy.","example":1},"fact":{"type":"object","additionalProperties":true,"description":"Input facts expected by your decision. The example assumes a decision accepting age and returning eligible; replace it with your own input.","example":{"age":25}}},"example":{"version":1,"fact":{"age":25}}}}}},"responses":{"201":{"description":"Evaluation recorded; inspect status for COMPLETED or FAILED.","content":{"application/json":{"schema":{"title":"LogicEvaluation","type":"object","required":["id","status","result","performance","trace"],"properties":{"id":{"type":["string","null"],"format":"uuid","description":"Persisted evaluation identifier; nullable in the shared evaluation contract.","example":"019991b1-0000-7000-8000-000000000006"},"status":{"type":"string","enum":["PENDING","COMPLETED","FAILED"],"description":"The synchronous REST call returns COMPLETED or FAILED. PENDING is part of the shared evaluation model.","example":"COMPLETED"},"result":{"description":"Decision-specific output. When status is FAILED, contains an error property describing the failure.","example":{"eligible":true}},"performance":{"type":["string","null"],"description":"Engine-reported duration, or null when unavailable.","example":"1.2ms"},"trace":{"type":["object","null"],"additionalProperties":true,"description":"Engine trace keyed by node ID. Contains per-node diagnostic data; sensitive configuration values are redacted. Null when unavailable.","example":null}},"example":{"id":"019991b1-0000-7000-8000-000000000006","status":"COMPLETED","result":{"eligible":true},"performance":"1.2ms","trace":{}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"409":{"description":"Conflict","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ConflictResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Conflict"],"example":"Conflict"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["409-000","409-001","409-002"],"example":"409-000"},"message":{"type":"string","example":"A resource with this identifier already exists"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/core/.well-known/openid-configuration":{"get":{"summary":"OpenID Connect Configuration","description":"Retrieves the OpenID Connect configuration metadata","operationId":"getOpenIdConfiguration","tags":["Core (Authz)"],"security":[],"responses":{"200":{"description":"OpenID Connect configuration","headers":{"Cache-Control":{"description":"The document may be cached for one hour.","schema":{"type":"string","example":"public, max-age=3600"}}},"content":{"application/json":{"schema":{"type":"object","title":"OpenIdConfiguration","properties":{"issuer":{"type":"string","description":"The issuer identifier. Matches the `iss` claim of tokens issued by this host.","example":"https://api.prod.neobits.ai/core"},"jwks_uri":{"type":"string","description":"URL of the JSON Web Key Set","example":"https://api.prod.neobits.ai/core/.well-known/jwks.json"},"token_endpoint":{"type":"string","description":"URL of the OAuth 2.0 token endpoint","example":"https://api.prod.neobits.ai/core/v1/oauth2/token"},"token_endpoint_auth_methods_supported":{"type":"array","description":"Authentication methods supported by the token endpoint","items":{"type":"string"},"example":["client_secret_basic"]},"introspection_endpoint":{"type":"string","description":"URL of the OAuth 2.0 token introspection endpoint","example":"https://api.prod.neobits.ai/core/v1/oauth2/introspect"},"introspection_endpoint_auth_methods_supported":{"type":"array","description":"Authentication methods supported by the introspection endpoint","items":{"type":"string"},"example":["client_secret_basic"]},"response_types_supported":{"type":"array","description":"Response types supported. Empty, because this host has no authorization endpoint.","items":{"type":"string"},"example":[]},"grant_types_supported":{"type":"array","description":"Grant types supported by the Core (Authz) server","items":{"type":"string"},"example":["client_credentials"]},"scopes_supported":{"type":"array","description":"Scopes supported by the Core (Authz) server","items":{"type":"string"},"example":["client:read","client:write","client:update","client:delete","clients:read","inquiry:read","inquiry:write","inquiry:update","inquiry:delete","inquiries:read","person:read"]}}}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/core/.well-known/jwks.json":{"get":{"summary":"JSON Web Key Set","description":"Retrieves the JSON Web Key Set containing the public keys used to verify access tokens. Select the key whose `kid` matches the `kid` in the token header.","operationId":"getJwks","tags":["Core (Authz)"],"security":[],"responses":{"200":{"description":"JSON Web Key Set","content":{"application/json":{"schema":{"type":"object","title":"JwksResponse","properties":{"keys":{"type":"array","description":"Array of JWK objects","items":{"type":"object","title":"JsonWebKey","properties":{"kty":{"type":"string","description":"Key type","example":"RSA"},"kid":{"type":"string","description":"Key ID. Tokens carry the same value in the `kid` header.","example":"uayMam8yjZZR8G1B_6ilQW9IswtefxWWAizvh-WhbGg"},"n":{"type":"string","description":"RSA modulus"},"e":{"type":"string","description":"RSA exponent","example":"AQAB"}}}}}}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/core/v1/oauth2/token":{"post":{"summary":"Get an OAuth 2.0 token","description":"Issues access tokens using the client credentials grant type","operationId":"createToken","tags":["Core (Authz)"],"security":[{"basic":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","title":"TokenRequest","required":["grant_type","resource"],"properties":{"grant_type":{"type":"string","description":"OAuth 2.0 grant type","enum":["client_credentials"]},"resource":{"type":"string","description":"Resource identifier to access (e.g., 'https://api.test.neobits.ai/fuse')"},"scope":{"type":"string","description":"Space-separated list of scopes for the token (cannot be combined with role). Each scope must be assigned to the client; otherwise the request fails with `invalid_scope`. The token carries only the scopes requested here, so request every scope the target endpoints need.","example":"environments:read execution:write"},"role":{"type":"string","description":"Role for the token (cannot be combined with scope). The role cannot be more privileged than the client's own role."},"session_duration":{"type":"integer","minimum":0,"maximum":28800,"description":"Requested token lifetime in seconds. The issued lifetime is the lower of this value and the client's `max_session_duration`. When omitted, the token lives for the client's `max_session_duration`.","example":3600}}}}}},"responses":{"200":{"description":"Access token response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"ScopeBasedToken","properties":{"access_token":{"type":"string","description":"The issued JWT access token"},"token_type":{"type":"string","description":"Type of token","enum":["Bearer"]},"expires_in":{"type":"integer","description":"Token lifetime in seconds. At most the client's `max_session_duration` (28800 seconds by default).","example":3600},"scope":{"type":"string","description":"Space-separated list of scopes associated with the token"}}},{"type":"object","title":"RoleBasedToken","properties":{"access_token":{"type":"string","description":"The issued JWT access token"},"token_type":{"type":"string","description":"Type of token","enum":["Bearer"]},"expires_in":{"type":"integer","description":"Token lifetime in seconds. At most the client's `max_session_duration` (28800 seconds by default).","example":3600},"role":{"type":"string","description":"Role associated with the token"}}}]},"examples":{"scopeBasedResponse":{"summary":"Response with scope","value":{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...","token_type":"Bearer","expires_in":3600,"scope":"read write"}},"roleBasedResponse":{"summary":"Response with role","value":{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...","token_type":"Bearer","expires_in":3600,"role":"admin"}}}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/core/v1/oauth2/introspect":{"post":{"summary":"Introspect an OAuth 2.0 token","description":"Determines the state and validity of an OAuth 2.0 token","operationId":"introspectOauthToken","tags":["Core (Authz)"],"security":[{"basic":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","title":"OAuthTokenIntrospectRequest","required":["token"],"properties":{"token":{"type":"string","description":"The token to introspect"},"token_type_hint":{"type":"string","description":"Optional hint about the token type. Accepted and ignored (RFC 7662 §2.1)"}}}}}},"responses":{"200":{"description":"Token introspection response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"ScopeBasedClient","properties":{"active":{"type":"boolean","description":"Whether the client is active"},"scope":{"type":"string","description":"Scopes associated with the client"},"sub":{"type":"string","description":"Subject of the token"},"exp":{"type":"integer","description":"Timestamp when the token expires"},"account_id":{"type":"string","format":"uuid","description":"Account ID associated with the client"}}},{"type":"object","title":"RoleBasedClient","properties":{"active":{"type":"boolean","description":"Whether the client is active"},"role":{"type":"string","description":"Role associated with the client"},"sub":{"type":"string","description":"Subject of the token"},"exp":{"type":"integer","description":"Timestamp when the token expires"},"account_id":{"type":"string","format":"uuid","description":"Account ID associated with the client"}}},{"type":"object","title":"InactiveToken","description":"Unknown, invalid, expired or disabled credentials (RFC 7662 §2.2)","required":["active"],"properties":{"active":{"type":"boolean","enum":[false]}}}]}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/core/v1/basic/introspect":{"post":{"summary":"Introspect a Basic token","description":"Determines the state and validity of a Basic token","operationId":"introspectBasicToken","tags":["Core (Authz)"],"security":[{"basic":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","title":"BasicTokenIntrospectRequest","required":["token"],"properties":{"token":{"type":"string","description":"The Basic token to introspect"},"token_type_hint":{"type":"string","description":"Optional hint about the token type. Accepted and ignored (RFC 7662 §2.1)"}}}}}},"responses":{"200":{"description":"Token introspection response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"ScopeBasedClient","properties":{"active":{"type":"boolean","description":"Whether the client is active"},"scope":{"type":"string","description":"Scopes associated with the client"},"sub":{"type":"string","description":"Subject of the token"},"account_id":{"type":"string","format":"uuid","description":"Account ID associated with the client"}}},{"type":"object","title":"RoleBasedClient","properties":{"active":{"type":"boolean","description":"Whether the client is active"},"role":{"type":"string","description":"Role associated with the client"},"sub":{"type":"string","description":"Subject of the token"},"account_id":{"type":"string","format":"uuid","description":"Account ID associated with the client"}}},{"type":"object","title":"InactiveToken","description":"Unknown, invalid, expired or disabled credentials (RFC 7662 §2.2)","required":["active"],"properties":{"active":{"type":"boolean","enum":[false]}}}]}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/core/v1/clients":{"get":{"summary":"List Clients","description":"Retrieves all clients","operationId":"getClients","tags":["Core (Authz)"],"security":[{"bearer":[]}],"responses":{"200":{"description":"List of clients","content":{"application/json":{"schema":{"type":"object","title":"ClientsList","properties":{"page":{"type":"object","title":"PaginationInfo","properties":{"size":{"type":"integer","description":"Number of clients returned"},"total":{"type":"integer","description":"Total number of clients"}}},"data":{"type":"array","items":{"type":"object","title":"Client","properties":{"id":{"type":"string","format":"uuid","description":"Client ID"},"username":{"type":"string","description":"Client username"},"password":{"type":"string","description":"Client password"},"auth_methods":{"type":"array","items":{"type":"string","enum":["basic","oauth"]},"description":"Core (Authz) methods supported by the client"},"grant_types":{"type":"array","items":{"type":"string","enum":["client_credentials"]},"description":"Grant types supported by the client"},"subscription_id":{"type":"string","format":"uuid","description":"Subscription ID associated with the client"},"scope":{"type":"string","description":"Scopes associated with the client"},"role":{"type":"string","description":"Role associated with the client"},"max_session_duration":{"type":"integer","description":"Maximum lifetime in seconds of access tokens issued to the client","example":28800}}}}}}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}},"post":{"summary":"Create Client","description":"Creates a new client","operationId":"createClient","tags":["Core (Authz)"],"security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","title":"ClientRequest","required":["auth_methods","grant_types"],"properties":{"auth_methods":{"type":"array","items":{"type":"string","enum":["basic","oauth"]},"description":"Core (Authz) methods supported by the client"},"grant_types":{"type":"array","items":{"type":"string","enum":["client_credentials"]},"description":"Grant types supported by the client"},"scope":{"type":"string","description":"Space-separated list of scopes"},"role":{"type":"string","description":"Role for the client"},"max_session_duration":{"type":"integer","minimum":0,"maximum":28800,"default":28800,"description":"Maximum lifetime in seconds of access tokens issued to the client"}}}}}},"responses":{"201":{"description":"Client created","content":{"application/json":{"schema":{"type":"object","title":"Client","properties":{"id":{"type":"string","format":"uuid","description":"Client ID"},"username":{"type":"string","description":"Client username"},"password":{"type":"string","description":"Client password"},"auth_methods":{"type":"array","items":{"type":"string","enum":["basic","oauth"]},"description":"Core (Authz) methods supported by the client"},"grant_types":{"type":"array","items":{"type":"string","enum":["client_credentials"]},"description":"Grant types supported by the client"},"subscription_id":{"type":"string","format":"uuid","description":"Subscription ID associated with the client"},"scope":{"type":"string","description":"Scopes associated with the client"},"role":{"type":"string","description":"Role associated with the client"},"max_session_duration":{"type":"integer","description":"Maximum lifetime in seconds of access tokens issued to the client","example":28800}}}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/core/v1/clients/{client_id}":{"get":{"summary":"Get Client","description":"Retrieves a specific client by ID","operationId":"getClient","tags":["Core (Authz)"],"security":[{"bearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The client ID"}],"responses":{"200":{"description":"Client details","content":{"application/json":{"schema":{"type":"object","title":"Client","properties":{"id":{"type":"string","format":"uuid","description":"Client ID"},"username":{"type":"string","description":"Client username"},"password":{"type":"string","description":"Client password, masked"},"auth_methods":{"type":"array","items":{"type":"string","enum":["basic","oauth"]},"description":"Core (Authz) methods supported by the client"},"grant_types":{"type":"array","items":{"type":"string","enum":["client_credentials"]},"description":"Grant types supported by the client"},"subscription_id":{"type":"string","format":"uuid","description":"Subscription ID associated with the client"},"scope":{"type":"string","description":"Scopes associated with the client"},"role":{"type":"string","description":"Role associated with the client"},"max_session_duration":{"type":"integer","description":"Maximum lifetime in seconds of access tokens issued to the client","example":28800}}}}}},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}},"delete":{"summary":"Delete Client","description":"Deletes a specific client","operationId":"deleteClient","tags":["Core (Authz)"],"security":[{"bearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The client ID"}],"responses":{"204":{"description":"Client deleted successfully"},"400":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"401":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"404":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"429":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"500":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"503":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"504":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}},"/fuse/v2/inquiries":{"post":{"operationId":"inquiries-post","tags":["Fuse"],"summary":"Create an inquiry","description":"<div className=\"rounded-2xl p-5 bg-white shadow\">\n  <div className=\"flex items-center\">\n    <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span>\n    <h4 className=\"font-medium text-gray-900\">Authorization Required</h4>\n  </div>\n  <div className=\"pl-6\">\n    <div className=\"mb-3 text-gray-900\">This endpoint requires authentication via the Core API Auth server.</div>\n    <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Learn about authentication →</a>\n  </div>\n</div>\n\n<br />\n\n\n<div className=\"mb-4 text-gray-900\">\nIf you plan on fetching data that requires prior consent from the user, \nthen you must create an inquiry via this endpoint, and send the user to the inquiry url first. \nSee the <code className=\"font-mono bg-gray-100 px-2 py-1 rounded\">GET /persons/&#123;ssn&#125;</code> endpoint documentation to see what data you can fetch with/without \nprior consent from the user.\n</div>\n\n<br />\n\n<div className=\"mb-4 text-gray-900\">\nThis endpoint returns a link to Neobits' app where Neobits will \ntake the person through the steps necessary to provide their consent and share their data.\nAfter the user consents to share their data, they will be redirected to the URL(s) you \ndecide as part of the request body to this endpoint (see request body schema).\n</div>\n\n<br />\n\n<h2 className=\"text-xl font-medium text-gray-900 mb-4\">Error handling</h2>\n\n<div className=\"mb-4 text-gray-900\">\nErrors are attached to the error redirect URL as query parameters. When the user is redirected, the consumer of the API can read the error details to handle it appropriately.\n</div>\n\n<div className=\"mb-4 text-gray-900\">\nExample error redirect:\n</div>\n\n<pre className=\"bg-gray-800 text-gray-100 p-4 rounded-xl no-scrollbar overflow-x-auto text-sm mb-4\">\n<code>https://redirect.example.com/error?name=InternalServerError&code=500-001&message=An+internal+server+error+occurred</code>\n</pre>\n\n<div className=\"mb-4 text-gray-900\">\nThe redirect URL includes three query parameters:\n</div>\n\n<ul className=\"list-disc pl-5 space-y-2 mb-4 text-gray-900\">\n  <li><strong>name</strong> - The error type identifier (e.g., <code className=\"bg-gray-100 px-1 rounded\">InternalServerError</code>, <code className=\"bg-gray-100 px-1 rounded\">BadRequestError</code>)</li>\n  <li><strong>code</strong> - A unique error code in the format <code className=\"bg-gray-100 px-1 rounded\">HTTP_STATUS-SEQUENCE</code></li>\n  <li><strong>message</strong> - A URL-encoded human-readable description of the error</li>\n</ul>\n\n<div className=\"rounded-2xl p-5 bg-white shadow\">\n  <div className=\"flex items-center\">\n    <span className=\"font-mono uppercase pr-2 text-blue-500\">📖</span>\n    <h4 className=\"font-medium text-gray-900\">Complete Error Reference</h4>\n  </div>\n  <div className=\"pl-6\">\n    <div className=\"mb-3 text-gray-900\">For a complete list of all possible error codes and their descriptions, see the error documentation.</div>\n    <a href=\"/api-reference/errors\" className=\"text-blue-500 hover:underline\">View all error codes →</a>\n  </div>\n</div>","security":[{"basic":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Client-chosen key, such as a UUID, that makes a retry safe. A repeated key returns the stored 201 response without running the request again. Reusing a key with a different request returns 409. A non-2xx response does not store the key.","schema":{"type":"string","minLength":1,"maxLength":128},"example":"7f9c2ba4-e88f-4f2e-9b1d-1f3c6a0e5d21"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"CreateInquiryRequestBody","type":"object","required":["redirect","ssn"],"properties":{"ssn":{"type":"string","example":"01029413157","description":"The unique identifier for the person"},"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"notifications":{"type":"array","description":"The notification array allows the consumer of the API to trigger text message and emails to alert the customer","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}}}}}}},"responses":{"201":{"description":"Created","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Location":{"description":"The location of the created inquiry in the form of a resource url","schema":{"type":"string","format":"url","example":"https://api.test.neobits.ai/fuse/v1/persons/01029413157/inquiries/0679c533-5061-496e-8dc5-df786f04a209"}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"type":"object","title":"Inquiry","properties":{"id":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"ssn":{"type":"string","example":"01029413157","description":"The unique identifier for the person the inquiry is for."},"url":{"example":"https://informasjonsinnhenting.prod.neobits.ai?applicationState=ey12345","format":"uri","type":"string","description":"Give this URL to the user so they can start the flow."},"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"isCompleted":{"type":"boolean","example":false,"description":"Indicates if the inquiry is completed or not by the user."},"createdAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry created date"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry last updated date"},"notifications":{"type":"array","description":"The notification options set for the inquiry.","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}},"metadata":{"type":"object","properties":{"sbl":{"type":"object","properties":{"authCode":{"type":"string","example":"0679c533-5061-496e-8dc5-df786f04a209","description":"Auhtorization code received from Altinn. Used to retrieve the customers data from Skatteetaten."}}}}},"prerequisites":{"type":"array","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","items":{"type":"object","title":"Prerequisite","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","properties":{"name":{"type":"string","enum":["SBL"],"example":"SBL"},"isCompleted":{"type":"boolean","description":"Whether the prerequisite has been completed or not. When the prerequisite requires the user to give prior consent, this field will be true if the user has given consent."},"consentUrl":{"type":["string","null"],"description":"The URL neobits will redirect the user to internally, so the user can complete the prerequisite.","format":"uri"}}}}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"409":{"description":"Conflict","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ConflictResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Conflict"],"example":"Conflict"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["409-000","409-001","409-002"],"example":"409-000"},"message":{"type":"string","example":"A resource with this identifier already exists"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"get":{"operationId":"inquiries-get","tags":["Fuse"],"summary":"Get multiple inquiries (TBA)","description":"<div className=\"rounded-2xl p-5 bg-white shadow\"> <div className=\"flex items-center\"> <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span> <h4 className=\"font-medium text-gray-900\">Authorization Required</h4> </div> <div className=\"pl-6\"> <div className=\"mb-3 text-gray-900\">This endpoint requires authentication via the Core API Auth server.</div> <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Learn about authentication →</a> </div> </div>\n<br />\n<div className=\"text-gray-900\">Get multiple inquiries at a time. Supports cursor-based pagination.</div>","security":[{"basic":[]}],"parameters":[{"in":"query","required":false,"name":"filter[isCompleted]","example":"false","schema":{"type":"boolean"},"description":"Filter the inquiries by completion status."},{"in":"query","required":false,"name":"page[after]","example":"df786f04a209","schema":{"type":"string"},"description":"Fetch inquiries after this cursor"},{"in":"query","required":false,"name":"page[before]","example":"5061496e","schema":{"type":"string"},"description":"Fetch inquiries before this cursor"},{"in":"query","required":false,"name":"page[size]","example":10,"schema":{"type":"integer","minimum":1,"maximum":200},"description":"The maximum number of inquiries to return"},{"in":"query","required":false,"name":"order","example":"asc","schema":{"type":"string","enum":["asc","desc"]},"description":"The order of the inquiries. Defaults to asc."},{"in":"query","required":false,"name":"sort","example":"createdAt","schema":{"type":"string","enum":["createdAt","updatedAt"]},"description":"The field to sort the inquiries by. Defaults to createdAt."}],"responses":{"200":{"description":"OK","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"type":"object","title":"InquiriesResponse","properties":{"metadata":{"type":"object","properties":{"page":{"type":"object","properties":{"size":{"example":50,"type":"integer","description":"The maximum number of items to return."},"total":{"example":20,"type":"integer","description":"The number of items in the results set."},"after":{"example":"df786f04","type":"string","description":"The cursor to fetch the next page of inquiries."},"before":{"example":"0679c533","type":"string","description":"The cursor to fetch the previous page of inquiries."}}}}},"data":{"type":"array","title":"Inquiries","items":{"type":"object","title":"Inquiry","properties":{"id":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"ssn":{"type":"string","example":"01029413157","description":"The unique identifier for the person the inquiry is for."},"url":{"example":"https://informasjonsinnhenting.prod.neobits.ai?applicationState=ey12345","format":"uri","type":"string","description":"Give this URL to the user so they can start the flow."},"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"isCompleted":{"type":"boolean","example":false,"description":"Indicates if the inquiry is completed or not by the user."},"createdAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry created date"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry last updated date"},"notifications":{"type":"array","description":"The notification options set for the inquiry.","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}},"metadata":{"type":"object","properties":{"sbl":{"type":"object","properties":{"authCode":{"type":"string","example":"0679c533-5061-496e-8dc5-df786f04a209","description":"Auhtorization code received from Altinn. Used to retrieve the customers data from Skatteetaten."}}}}},"prerequisites":{"type":"array","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","items":{"type":"object","title":"Prerequisite","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","properties":{"name":{"type":"string","enum":["SBL"],"example":"SBL"},"isCompleted":{"type":"boolean","description":"Whether the prerequisite has been completed or not. When the prerequisite requires the user to give prior consent, this field will be true if the user has given consent."},"consentUrl":{"type":["string","null"],"description":"The URL neobits will redirect the user to internally, so the user can complete the prerequisite.","format":"uri"}}}}}}}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/fuse/v2/inquiries/{inquiryId}":{"delete":{"operationId":"inquiry-delete","tags":["Fuse"],"summary":"Delete an inquiry (TBA)","description":"<div className=\"rounded-2xl p-5 bg-white shadow\"> <div className=\"flex items-center\"> <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span> <h4 className=\"font-medium text-gray-900\">Authorization Required</h4> </div> <div className=\"pl-6\"> <div className=\"mb-3 text-gray-900\">This endpoint requires authentication via the Core API Auth server.</div> <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Learn about authentication →</a> </div> </div>\n<br />\n<div className=\"text-gray-900\">Inquiries that are completed cannot be deleted.</div>","security":[{"basic":[]}],"parameters":[{"in":"path","name":"inquiryId","required":true,"example":"0679c533-5061-496e-8dc5-df786f04a209","schema":{"type":"string"},"description":"The unique identifier of the inquiry"}],"responses":{"204":{"description":"No Content","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"patch":{"operationId":"inquiry-patch","tags":["Fuse"],"summary":"Update an inquiry (TBA)","description":"<div className=\"rounded-2xl p-5 bg-white shadow\"> <div className=\"flex items-center\"> <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span> <h4 className=\"font-medium text-gray-900\">Authorization Required</h4> </div> <div className=\"pl-6\"> <p className=\"mb-3 text-gray-900\">This endpoint requires authentication via the Core API Auth server.</p> <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Learn about authentication →</a> </div> </div>\n<br />\n<div className=\"text-gray-900\">Partially update an inquiry.</div>","security":[{"basic":[]}],"parameters":[{"in":"path","name":"inquiryId","required":true,"example":"0679c533-5061-496e-8dc5-df786f04a209","schema":{"type":"string"},"description":"The unique identifier of the inquiry"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"PatchInquiryRequestBody","type":"object","properties":{"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"notifications":{"type":"array","description":"The notification array allows the consumer of the API to trigger text message and emails to alert the customer","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}}}}}}},"responses":{"200":{"description":"OK","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"type":"object","title":"Inquiry","properties":{"id":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"ssn":{"type":"string","example":"01029413157","description":"The unique identifier for the person the inquiry is for."},"url":{"example":"https://informasjonsinnhenting.prod.neobits.ai?applicationState=ey12345","format":"uri","type":"string","description":"Give this URL to the user so they can start the flow."},"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"isCompleted":{"type":"boolean","example":false,"description":"Indicates if the inquiry is completed or not by the user."},"createdAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry created date"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry last updated date"},"notifications":{"type":"array","description":"The notification options set for the inquiry.","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}},"metadata":{"type":"object","properties":{"sbl":{"type":"object","properties":{"authCode":{"type":"string","example":"0679c533-5061-496e-8dc5-df786f04a209","description":"Auhtorization code received from Altinn. Used to retrieve the customers data from Skatteetaten."}}}}},"prerequisites":{"type":"array","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","items":{"type":"object","title":"Prerequisite","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","properties":{"name":{"type":"string","enum":["SBL"],"example":"SBL"},"isCompleted":{"type":"boolean","description":"Whether the prerequisite has been completed or not. When the prerequisite requires the user to give prior consent, this field will be true if the user has given consent."},"consentUrl":{"type":["string","null"],"description":"The URL neobits will redirect the user to internally, so the user can complete the prerequisite.","format":"uri"}}}}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}},"get":{"operationId":"inquiry","tags":["Fuse"],"summary":"Get an inquiry","description":"<div className=\"rounded-2xl p-5 bg-white shadow\"> <div className=\"flex items-center\"> <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span> <h4 className=\"font-medium text-gray-900\">Authorization Required</h4> </div> <div className=\"pl-6\"> <div className=\"mb-3 text-gray-900\">This endpoint requires authentication via the Core API Auth server.</div> <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Learn about authentication →</a> </div> </div>\n<br />\n<div className=\"text-gray-900\">Fetch a single inquiry using its id.</div>","security":[{"basic":[]}],"parameters":[{"in":"path","name":"inquiryId","required":true,"example":"0679c533-5061-496e-8dc5-df786f04a209","schema":{"type":"string"},"description":"The unique identifier of the inquiry"}],"responses":{"200":{"description":"OK","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"type":"object","title":"Inquiry","properties":{"id":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"ssn":{"type":"string","example":"01029413157","description":"The unique identifier for the person the inquiry is for."},"url":{"example":"https://informasjonsinnhenting.prod.neobits.ai?applicationState=ey12345","format":"uri","type":"string","description":"Give this URL to the user so they can start the flow."},"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"isCompleted":{"type":"boolean","example":false,"description":"Indicates if the inquiry is completed or not by the user."},"createdAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry created date"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry last updated date"},"notifications":{"type":"array","description":"The notification options set for the inquiry.","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}},"metadata":{"type":"object","properties":{"sbl":{"type":"object","properties":{"authCode":{"type":"string","example":"0679c533-5061-496e-8dc5-df786f04a209","description":"Auhtorization code received from Altinn. Used to retrieve the customers data from Skatteetaten."}}}}},"prerequisites":{"type":"array","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","items":{"type":"object","title":"Prerequisite","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","properties":{"name":{"type":"string","enum":["SBL"],"example":"SBL"},"isCompleted":{"type":"boolean","description":"Whether the prerequisite has been completed or not. When the prerequisite requires the user to give prior consent, this field will be true if the user has given consent."},"consentUrl":{"type":["string","null"],"description":"The URL neobits will redirect the user to internally, so the user can complete the prerequisite.","format":"uri"}}}}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}},"/fuse/v2/persons/{ssn}":{"get":{"operationId":"person","tags":["Fuse"],"summary":"Get a person","security":[{"basic":[]}],"description":"<div className=\"rounded-2xl p-5 bg-white shadow\">\n  <div className=\"flex items-center\">\n    <span className=\"font-mono uppercase pr-2 text-purple-500\">❗</span>\n    <div className=\"font-medium text-gray-900\">\n      #### Authorization Required\n    </div>\n  </div>\n  <div className=\"pl-6\">\n    <p className=\"mb-3 text-gray-900\">This endpoint requires authentication via the Core API Auth server.</p>\n    <a href=\"/api-reference/tag/core-authz\" className=\"text-purple-500 hover:underline\">Learn about authentication →</a>\n  </div>\n</div>\n\n<br />\n\nUse this endpoint to fetch information about a customer. If the data in question\nrequires prior consent from the customer,\nthen you need to create an inquiry first and give the inquiry url to your customer,\nso that they can consent to share their data.\n\n<br/>\n\nWhen the inquiry is completed by the customer, you can come back and use the inquiryId\nto fetch data.\n","parameters":[{"in":"path","name":"ssn","required":true,"example":"01029413157","schema":{"type":"string"},"description":"The unique identifier for the person"},{"in":"query","name":"inquiryId","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"required":false,"description":"If the data you are fetching requires an inquiry to be created and completed by the customer first, then this parameter is required."}],"responses":{"200":{"headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"description":"OK","content":{"application/json":{"schema":{"anyOf":[{"title":"PersonWithConsent","type":"object","description":"Returns data for a person where the users consent is required and is completed via \"Initate\". Requires the \"code\" query param passed as part of the request.","properties":{"ssn":{"type":"string","example":"01029413157"},"firstName":{"type":"string","example":"STOR"},"lastName":{"type":"string","example":"MÅNE"},"maritalStatus":{"type":"string","enum":["MARRIED","NOT_GIVEN","UNMARRIED","DIVORCED","SEPARATED","WIDOW_ER","REGISTERED_PARTNER","SEPARATED_PARTNER","DIVORCED_PARTNER","REMAINING_PARTNER"]},"citizenships":{"type":"array","items":{"title":"Citizenship","type":"object","properties":{"citizenship":{"type":"string","example":"NOR"},"isApplicable":{"type":"boolean","example":true,"description":"maps to 'erGjeldende' in the original response"}}}},"gender":{"type":"string","example":"MALE","enum":["MALE","FEMALE","UNKNOWN"]},"birthdate":{"type":"string","format":"date","example":"1982-02-21"},"countryOfBirth":{"type":"string","example":"NOR"},"status":{"type":"string","example":"RESIDENT","description":"The current status of the person in the Norwegian Population Registry","enum":["RESIDENT","RELOCATED","DISAPPEARED","DISEASED","CEASED","REGISTERED_BY_BIRTH","TEMPORARY","INACTIVE","NON_RESIDENT","ACTIVE","UNKNOWN"]},"employmentStatus":{"type":"string","description":"Inferred from the applicants income report of the last month.","enum":["PERMANENTLY_EMPLOYED","TEMPORARILY_EMPLOYED","SICKNESS_ALLOWANCE","DISABILITY_PENSION","RETIRED","UNEMPLOYED","OTHER"],"example":"PERMANENTLY_EMPLOYED"},"receivesSocialSecurityBenefits":{"type":"boolean","example":true,"description":"Inferred from the applicants income report of the last month."},"hasAttachmentCharge":{"type":"boolean","example":true,"description":"Searches through the movables registry (løsøre) to find active attachment charges (UTLEGG/UTPANTING)."},"residentialAddress":{"type":["object","null"],"title":"ResidentialAddress","description":"The persons Norwegian residential address. May be null, if the person is living in a foreign country.","properties":{"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"street":{"type":"object","properties":{"name":{"type":"string","example":"Rudvegen"},"number":{"type":"string","example":"57"},"letter":{"type":["string","null"],"example":"A"}}},"municipality":{"type":"object","properties":{"name":{"type":"string","example":"NESBYEN"},"number":{"type":"string","example":"3540"}}}}},"family":{"type":"object","properties":{"numChildrenBelowAge18":{"type":"integer","description":"Number of persons in the family that are below 18 years of age"},"members":{"type":"array","items":{"type":"object","properties":{"ssn":{"type":"string","example":"03028711300","description":"11 digit identification number of the person."},"age":{"type":"integer","example":34},"gender":{"type":"string","enum":["FEMALE","MALE"]},"relation":{"type":"string","enum":["PARENT","SPOUSE_OR_PARTNER","CHILD","SIBLING"],"description":"The persons relation to the family member."}}}}}},"property":{"type":"object","title":"PropertyOverview","description":"Aggregation of Kartverket API and Eiendomsverdi API","properties":{"ownsProperty":{"type":"boolean","example":true},"properties":{"type":"array","items":{"type":"object","title":"Property","discriminator":{"propertyName":"type","mapping":{"SelfOwnedProperty":"./SelfOwnedProperty.yaml","HousingCooperative":"./HousingCooperative.yaml"}},"anyOf":[{"type":"object","title":"SelfOwnedProperty","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}},{"type":"object","title":"HousingCooperative","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"housingCooperative":{"title":"HousingCooperativeInformation","type":"object","properties":{"id":{"type":"string","example":"5424543"},"name":{"type":"string","example":"TERTITTEN BORETTSLAG"},"orgID":{"type":"string","example":"12345678911"},"shareNumber":{"type":"string","example":25}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}}]}}}},"debt":{"type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumAccruedInterestFromDebtCollectors":{"type":"number","format":"double","example":400},"sumOwedMaintenancePayments":{"type":"number","format":"double","example":15000},"sumOwedUnderpaidTax":{"type":"number","format":"double","example":4000},"sumLatePaymentInterest":{"type":"number","format":"double","example":346},"mortgageDebt":{"title":"MortgageDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumEstimatedBalanceByOwnership":{"type":"number","format":"double","example":35000000},"sumOriginalBalanceByOwnership":{"type":"number","format":"double","example":50000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"propertyOwnershipShare":{"type":"number","format":"double","example":0.5,"description":"The ownership share of the property in the mortgage."},"originalBalanceByOwnership":{"type":"number","format":"double","example":3000000,"description":"The original balance multiplied by the property ownership share."},"estimatedBalanceByOwnership":{"type":"number","format":"double","example":2000000,"description":"The estimated balance multiplied by the property ownership share."},"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]}}}},"studentDebt":{"title":"StudentDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"balanceSource":{"type":"string","enum":["SKATTEETATEN"],"example":"SKATTEETATEN","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"autoDebt":{"title":"AutoDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"unsecuredDebt":{"title":"UnsecuredDebtOverview","type":"object","properties":{"sumBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumCreditLimit":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}}}}}}},"income":{"type":"object","title":"IncomeOverview","properties":{"yearlyGrossIncome":{"type":"number","format":"double","example":1010000},"yearlyNetIncome":{"type":"number","format":"double","example":650000},"yearlyDrivingAllowance":{"type":"number","format":"double","example":650000},"yearlyBonus":{"type":"number","format":"double","example":650000},"yearlySalary":{"type":"number","format":"double","example":650000},"yearlyWage":{"type":"number","format":"double","example":650000},"yearlySicknessAllowance":{"type":"number","format":"double","example":650000},"yearlyDisabilityPension":{"type":"number","format":"double","example":650000},"yearlyPension":{"type":"number","format":"double","example":650000},"yearlyUnemploymentBenefit":{"type":"number","format":"double","example":650000},"yearlyWorkAssessmentAllowance":{"type":"number","format":"double","example":650000},"monthlyIncomeRecords":{"type":"array","items":{"title":"MonthlyIncomeRecord","type":"object","properties":{"grossIncome":{"type":"number","format":"double"},"netIncome":{"type":"number","format":"double"},"date":{"type":"string","format":"YYYY-MM"}}},"example":[{"grossIncome":30000,"netIncome":30000,"date":"2019-02"},{"grossIncome":30000,"netIncome":30000,"date":"2019-03"},{"grossIncome":30000,"netIncome":30000,"date":"2019-04"},{"grossIncome":30000,"netIncome":30000,"date":"2019-05"},{"grossIncome":30000,"netIncome":30000,"date":"2019-06"},{"grossIncome":30000,"netIncome":30000,"date":"2019-07"}]},"taxRecords":{"type":"array","description":"Sorted by key \"taxYear\" in descending order","items":{"title":"TaxRecord","type":"object","properties":{"taxYear":{"type":"string","example":"2018"},"yearlyGrossIncome":{"type":"number","format":"double","example":936618},"yearlySalary":{"type":"number","format":"double","example":936616},"yearlyRentalIncome":{"type":"number","format":"double","example":10000},"yearlyEstimatedTax":{"type":"number","format":"double","example":273562.23},"yearlyEstimatedNetIncome":{"type":"number","format":"double","example":663055.77},"employers":{"type":"array","items":{"title":"Employer","type":"object","properties":{"name":{"type":"string","example":"Min Jobb AS"},"orgID":{"type":["string","null"],"example":"123456789"}}}}}}}}}}},{"title":"PersonWithoutConsent","type":"object","description":"Returns data for a person where consent is not a requirement.","properties":{"ssn":{"type":"string","example":"01029413157"},"firstName":{"type":"string","example":"STOR"},"lastName":{"type":"string","example":"MÅNE"},"maritalStatus":{"type":"string","enum":["MARRIED","NOT_GIVEN","UNMARRIED","DIVORCED","SEPARATED","WIDOW_ER","REGISTERED_PARTNER","SEPARATED_PARTNER","DIVORCED_PARTNER","REMAINING_PARTNER"]},"citizenships":{"type":"array","items":{"title":"Citizenship","type":"object","properties":{"citizenship":{"type":"string","example":"NOR"},"isApplicable":{"type":"boolean","example":true,"description":"maps to 'erGjeldende' in the original response"}}}},"gender":{"type":"string","example":"MALE","enum":["MALE","FEMALE","UNKNOWN"]},"birthdate":{"type":"string","format":"YYYY-MM-DD","example":"1982-02-21"},"countryOfBirth":{"type":"string","example":"NOR"},"status":{"type":"string","example":"RESIDENT","description":"The current status of the person in the Norwegian Population Registry","enum":["RESIDENT","RELOCATED","DISAPPEARED","DISEASED","CEASED","REGISTERED_BY_BIRTH","TEMPORARY","INACTIVE","NON_RESIDENT","ACTIVE","UNKNOWN"]},"hasAttachmentCharge":{"type":"boolean","example":true,"description":"Searches through the movables registry (løsøre) to find active attachment charges (UTLEGG/UTPANTING)."},"residentialAddress":{"type":["object","null"],"title":"ResidentialAddress","description":"The persons Norwegian residential address. May be null, if the person is living in a foreign country.","properties":{"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"street":{"type":"object","properties":{"name":{"type":"string","example":"Rudvegen"},"number":{"type":"string","example":"57"},"letter":{"type":["string","null"],"example":"A"}}},"municipality":{"type":"object","properties":{"name":{"type":"string","example":"NESBYEN"},"number":{"type":"string","example":"3540"}}}}},"family":{"type":"object","properties":{"numChildrenBelowAge18":{"type":"integer","description":"Number of persons in the family that are below 18 years of age"},"members":{"type":"array","items":{"type":"object","properties":{"ssn":{"type":"string","example":"03028711300","description":"11 digit identification number of the person."},"age":{"type":"integer","example":34},"gender":{"type":"string","enum":["FEMALE","MALE"]},"relation":{"type":"string","enum":["PARENT","SPOUSE_OR_PARTNER","CHILD","SIBLING"],"description":"The persons relation to the family member."}}}}}},"property":{"type":"object","title":"PropertyOverview","description":"Aggregation of Kartverket API and Eiendomsverdi API","properties":{"ownsProperty":{"type":"boolean","example":true},"properties":{"type":"array","items":{"type":"object","title":"Property","discriminator":{"propertyName":"type","mapping":{"SelfOwnedProperty":"./SelfOwnedProperty.yaml","HousingCooperative":"./HousingCooperative.yaml"}},"anyOf":[{"type":"object","title":"SelfOwnedProperty","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}},{"type":"object","title":"HousingCooperative","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"housingCooperative":{"title":"HousingCooperativeInformation","type":"object","properties":{"id":{"type":"string","example":"5424543"},"name":{"type":"string","example":"TERTITTEN BORETTSLAG"},"orgID":{"type":"string","example":"12345678911"},"shareNumber":{"type":"string","example":25}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}}]}}}},"debt":{"type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"mortgageDebt":{"title":"MortgageDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]}}}},"autoDebt":{"title":"AutoDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"unsecuredDebt":{"title":"UnsecuredDebtOverview","type":"object","properties":{"sumBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumCreditLimit":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}}}}}}}}}]}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"BadRequestResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"UnauthorizedResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}}}}}}}},"403":{"description":"Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ForbiddenResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}}}}}}}},"404":{"description":"Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"NotFoundResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}}}}}}}},"429":{"description":"Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TooManyRequestsResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}}}}}}}},"500":{"description":"Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"InternalServerErrorResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}}}}}}}},"503":{"description":"Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"ServiceUnavailableResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}}}}}}}},"504":{"description":"Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"TimeoutResponse","type":"object","properties":{"timestamp":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"moreInfo":{"type":"string","format":"url","example":"https://docs.neobits.ai/"},"errors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}}}}}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token authentication using OAuth 2.0 client credentials flow."},"basic":{"type":"http","scheme":"basic","description":"Basic authentication, base64 encoded username:password."}},"schemas":{"LogicEnvironment":{"title":"LogicEnvironment","type":"object","required":["id","workspaceId","name","description","color","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Environment identifier.","example":"019991b1-0000-7000-8000-000000000002"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}},"LogicDeployment":{"title":"LogicDeployment","type":"object","required":["id","workspaceId","decisionId","version","environmentId","name","message","deployedBy","milestone","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Deployment identifier.","example":"019991b1-0000-7000-8000-000000000004"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1},"milestone":{"type":"integer","const":0,"description":"Snapshot milestone; always 0 for a deployment.","example":0},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}},"LogicExecution":{"title":"LogicExecution","type":"object","required":["id","decisionId","status","result","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Persisted execution identifier.","example":"019991b1-0000-7000-8000-000000000005"},"decisionId":{"type":"string","format":"uuid","description":"Executed decision.","example":"019991b1-0000-7000-8000-000000000003"},"status":{"type":"string","enum":["COMPLETED","FAILED"],"description":"Check this field even when the HTTP status is 201.","example":"COMPLETED"},"result":{"description":"Decision-specific output. When status is FAILED, contains an error property describing the failure.","example":{"eligible":true},"type":"object","additionalProperties":true},"performance":{"type":"string","description":"Engine-reported duration.","example":"1.2ms"},"trace":{"type":"object","additionalProperties":true,"description":"Diagnostic trace for a failed execution, when available. Omitted for successful executions.","example":{}},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000005","decisionId":"019991b1-0000-7000-8000-000000000003","status":"COMPLETED","result":{"eligible":true},"performance":"1.2ms","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}},"LogicEvaluation":{"title":"LogicEvaluation","type":"object","required":["id","status","result","performance","trace"],"properties":{"id":{"type":["string","null"],"format":"uuid","description":"Persisted evaluation identifier; nullable in the shared evaluation contract.","example":"019991b1-0000-7000-8000-000000000006"},"status":{"type":"string","enum":["PENDING","COMPLETED","FAILED"],"description":"The synchronous REST call returns COMPLETED or FAILED. PENDING is part of the shared evaluation model.","example":"COMPLETED"},"result":{"description":"Decision-specific output. When status is FAILED, contains an error property describing the failure.","example":{"eligible":true}},"performance":{"type":["string","null"],"description":"Engine-reported duration, or null when unavailable.","example":"1.2ms"},"trace":{"type":["object","null"],"additionalProperties":true,"description":"Engine trace keyed by node ID. Contains per-node diagnostic data; sensitive configuration values are redacted. Null when unavailable.","example":null}},"example":{"id":"019991b1-0000-7000-8000-000000000006","status":"COMPLETED","result":{"eligible":true},"performance":"1.2ms","trace":{}}},"LogicPage":{"title":"LogicPage","type":"object","required":["size","total","before","after"],"properties":{"size":{"type":"integer","minimum":0,"description":"Number of resources returned in this response.","example":1},"total":{"type":"integer","minimum":0,"description":"Total resources in the active workspace, independent of the cursor.","example":1},"before":{"type":["string","null"],"format":"uuid","description":"First returned ID. Use as before to request the preceding page. Null for an empty page.","example":"019991b1-0000-7000-8000-000000000002"},"after":{"type":["string","null"],"format":"uuid","description":"Last returned ID. Use as after to request the following page. Null for an empty page. A non-null cursor does not guarantee another page exists.","example":"019991b1-0000-7000-8000-000000000002"}}},"LogicEnvironmentPage":{"title":"LogicEnvironmentPage","type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"title":"LogicEnvironment","type":"object","required":["id","workspaceId","name","description","color","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Environment identifier.","example":"019991b1-0000-7000-8000-000000000002"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}},"page":{"title":"LogicPage","type":"object","required":["size","total","before","after"],"properties":{"size":{"type":"integer","minimum":0,"description":"Number of resources returned in this response.","example":1},"total":{"type":"integer","minimum":0,"description":"Total resources in the active workspace, independent of the cursor.","example":1},"before":{"type":["string","null"],"format":"uuid","description":"First returned ID. Use as before to request the preceding page. Null for an empty page.","example":"019991b1-0000-7000-8000-000000000002"},"after":{"type":["string","null"],"format":"uuid","description":"Last returned ID. Use as after to request the following page. Null for an empty page. A non-null cursor does not guarantee another page exists.","example":"019991b1-0000-7000-8000-000000000002"}}}},"example":{"data":[{"id":"019991b1-0000-7000-8000-000000000002","workspaceId":"019991b1-0000-7000-8000-000000000001","name":"Test","description":"Integration testing","color":"#2563eb","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}],"page":{"size":1,"total":1,"before":"019991b1-0000-7000-8000-000000000002","after":"019991b1-0000-7000-8000-000000000002"}}},"LogicDeploymentPage":{"title":"LogicDeploymentPage","type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"title":"LogicDeployment","type":"object","required":["id","workspaceId","decisionId","version","environmentId","name","message","deployedBy","milestone","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","description":"Deployment identifier.","example":"019991b1-0000-7000-8000-000000000004"},"workspaceId":{"type":"string","format":"uuid","description":"Workspace containing this resource.","example":"019991b1-0000-7000-8000-000000000001"},"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1},"milestone":{"type":"integer","const":0,"description":"Snapshot milestone; always 0 for a deployment.","example":0},"createdAt":{"type":"string","format":"date-time","description":"Creation time.","example":"2026-09-30T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","description":"Last update time.","example":"2026-09-30T10:00:00.000Z"}},"example":{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}}},"page":{"title":"LogicPage","type":"object","required":["size","total","before","after"],"properties":{"size":{"type":"integer","minimum":0,"description":"Number of resources returned in this response.","example":1},"total":{"type":"integer","minimum":0,"description":"Total resources in the active workspace, independent of the cursor.","example":1},"before":{"type":["string","null"],"format":"uuid","description":"First returned ID. Use as before to request the preceding page. Null for an empty page.","example":"019991b1-0000-7000-8000-000000000002"},"after":{"type":["string","null"],"format":"uuid","description":"Last returned ID. Use as after to request the following page. Null for an empty page. A non-null cursor does not guarantee another page exists.","example":"019991b1-0000-7000-8000-000000000002"}}}},"example":{"data":[{"id":"019991b1-0000-7000-8000-000000000004","workspaceId":"019991b1-0000-7000-8000-000000000001","decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"milestone":0,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service","createdAt":"2026-09-30T10:00:00.000Z","updatedAt":"2026-09-30T10:00:00.000Z"}],"page":{"size":1,"total":1,"before":"019991b1-0000-7000-8000-000000000004","after":"019991b1-0000-7000-8000-000000000004"}}},"CreateLogicEnvironment":{"title":"CreateLogicEnvironment","type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"}},"example":{"name":"Test","description":"Integration testing","color":"#2563eb"}},"UpdateLogicEnvironment":{"title":"UpdateLogicEnvironment","type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","description":"Nonempty name without leading or trailing whitespace.","example":"Test","minLength":1},"description":{"type":["string","null"],"description":"Description. Use null or an empty string to clear it.","example":"Integration testing"},"color":{"type":"string","description":"A six-digit hex color or one of the supported theme colors. If omitted on creation, a random theme color is persisted.","pattern":"^(#[0-9a-fA-F]{6}|var\\(--color-(blue|purple|pink|yellow|aqua|cyan)-500\\))$","example":"#2563eb"}},"example":{"description":"Shared integration environment"}},"CreateLogicDeployment":{"title":"CreateLogicDeployment","type":"object","additionalProperties":false,"required":["decisionId","version","environmentId","name","deployedBy"],"properties":{"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1}},"example":{"decisionId":"019991b1-0000-7000-8000-000000000003","version":1,"environmentId":"019991b1-0000-7000-8000-000000000002","name":"Eligibility v1","message":"Initial deployment","deployedBy":"Integration service"}},"UpdateLogicDeployment":{"title":"UpdateLogicDeployment","type":"object","additionalProperties":false,"minProperties":1,"properties":{"decisionId":{"type":"string","format":"uuid","description":"Standalone decision to deploy. Sub-decisions are deployed with their parent.","example":"019991b1-0000-7000-8000-000000000003"},"version":{"type":["integer","null"],"minimum":0,"maximum":2147483647,"description":"Saved version number, or 0/null for the working copy. Null is normalized to 0 in the response. Use a saved version for a reproducible deployment.","example":1},"environmentId":{"type":"string","format":"uuid","description":"Environment in the active workspace.","example":"019991b1-0000-7000-8000-000000000002"},"name":{"type":"string","description":"Nonempty deployment name without leading or trailing whitespace.","example":"Eligibility v1","minLength":1},"message":{"type":["string","null"],"description":"Release notes. Use null or an empty string to clear them.","example":"Initial deployment"},"deployedBy":{"type":"string","description":"Caller-supplied attribution; required and not inferred from the access token.","example":"Integration service","minLength":1}},"example":{"message":"Verified by integration tests"}},"CreateLogicExecution":{"title":"CreateLogicExecution","type":"object","required":["fact"],"properties":{"fact":{"type":"object","additionalProperties":true,"description":"Input facts expected by your decision. The example assumes a decision accepting age and returning eligible; replace it with your own input.","example":{"age":25}}},"example":{"fact":{"age":25}}},"CreateLogicEvaluation":{"title":"CreateLogicEvaluation","type":"object","required":["version","fact"],"properties":{"version":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Decision version: 1 and above select saved versions; 0 selects the editable working copy.","example":1},"fact":{"type":"object","additionalProperties":true,"description":"Input facts expected by your decision. The example assumes a decision accepting age and returning eligible; replace it with your own input.","example":{"age":25}}},"example":{"version":1,"fact":{"age":25}}},"Inquiry":{"type":"object","title":"Inquiry","properties":{"id":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"ssn":{"type":"string","example":"01029413157","description":"The unique identifier for the person the inquiry is for."},"url":{"example":"https://informasjonsinnhenting.prod.neobits.ai?applicationState=ey12345","format":"uri","type":"string","description":"Give this URL to the user so they can start the flow."},"externalId":{"type":"string","example":"CAN_BE_ANY_STRING","description":"Optional identifier the consumer of the API can provide."},"skipConsentMessages":{"type":"boolean","example":true,"description":"Will skip messages explaining to the user which consents are needed to complete the flow."},"isCompleted":{"type":"boolean","example":false,"description":"Indicates if the inquiry is completed or not by the user."},"createdAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry created date"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-07T15:50:00Z","description":"Inquiry last updated date"},"notifications":{"type":"array","description":"The notification options set for the inquiry.","items":{"type":"object","title":"NotificationOptions","required":["type","message","to"],"properties":{"type":{"type":"string","enum":["SMS"],"example":"SMS"},"message":{"type":"string","example":"Hei. For å dele din informasjon med Bank Bankersen ASA, vennligst gå til denne lenken $link","description":"The consumer of the API can decide where to place the link to initate the process by passing in $link (see example)"},"to":{"type":"string","example":"12345678","description":"The phone number you want the text message to be sent to"}}}},"redirect":{"type":"object","title":"RedirectOptions","description":"URL's provided here will decide where the user should be sent on flow completion","properties":{"onSuccess":{"type":"string","description":"URL to send the user to after the data is fetched","format":"url","example":"https://your.frontend.com/success"},"onError":{"type":"string","description":"URL to send the user to when an error occurs. See the \"Error handling\" section above for more info.","format":"url","example":"https://your.frontend.com/error"}}},"metadata":{"type":"object","properties":{"sbl":{"type":"object","properties":{"authCode":{"type":"string","example":"0679c533-5061-496e-8dc5-df786f04a209","description":"Auhtorization code received from Altinn. Used to retrieve the customers data from Skatteetaten."}}}}},"prerequisites":{"type":"array","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","items":{"type":"object","title":"Prerequisite","description":"Prerequisites are actions that the user must complete before the data can be fetched. They can either be consents that must be given, or flows that must be completed.","properties":{"name":{"type":"string","enum":["SBL"],"example":"SBL"},"isCompleted":{"type":"boolean","description":"Whether the prerequisite has been completed or not. When the prerequisite requires the user to give prior consent, this field will be true if the user has given consent."},"consentUrl":{"type":["string","null"],"description":"The URL neobits will redirect the user to internally, so the user can complete the prerequisite.","format":"uri"}}}}}},"IncomeOverview":{"type":"object","title":"IncomeOverview","properties":{"yearlyGrossIncome":{"type":"number","format":"double","example":1010000},"yearlyNetIncome":{"type":"number","format":"double","example":650000},"yearlyDrivingAllowance":{"type":"number","format":"double","example":650000},"yearlyBonus":{"type":"number","format":"double","example":650000},"yearlySalary":{"type":"number","format":"double","example":650000},"yearlyWage":{"type":"number","format":"double","example":650000},"yearlySicknessAllowance":{"type":"number","format":"double","example":650000},"yearlyDisabilityPension":{"type":"number","format":"double","example":650000},"yearlyPension":{"type":"number","format":"double","example":650000},"yearlyUnemploymentBenefit":{"type":"number","format":"double","example":650000},"yearlyWorkAssessmentAllowance":{"type":"number","format":"double","example":650000},"monthlyIncomeRecords":{"type":"array","items":{"title":"MonthlyIncomeRecord","type":"object","properties":{"grossIncome":{"type":"number","format":"double"},"netIncome":{"type":"number","format":"double"},"date":{"type":"string","format":"YYYY-MM"}}},"example":[{"grossIncome":30000,"netIncome":30000,"date":"2019-02"},{"grossIncome":30000,"netIncome":30000,"date":"2019-03"},{"grossIncome":30000,"netIncome":30000,"date":"2019-04"},{"grossIncome":30000,"netIncome":30000,"date":"2019-05"},{"grossIncome":30000,"netIncome":30000,"date":"2019-06"},{"grossIncome":30000,"netIncome":30000,"date":"2019-07"}]},"taxRecords":{"type":"array","description":"Sorted by key \"taxYear\" in descending order","items":{"title":"TaxRecord","type":"object","properties":{"taxYear":{"type":"string","example":"2018"},"yearlyGrossIncome":{"type":"number","format":"double","example":936618},"yearlySalary":{"type":"number","format":"double","example":936616},"yearlyRentalIncome":{"type":"number","format":"double","example":10000},"yearlyEstimatedTax":{"type":"number","format":"double","example":273562.23},"yearlyEstimatedNetIncome":{"type":"number","format":"double","example":663055.77},"employers":{"type":"array","items":{"title":"Employer","type":"object","properties":{"name":{"type":"string","example":"Min Jobb AS"},"orgID":{"type":["string","null"],"example":"123456789"}}}}}}}}},"PersonOverviewWithConsent":{"type":"object","description":"Returns data for a person where the users consent is required and is completed via \"Initate\". Requires the \"code\" query param passed as part of the request.","properties":{"ssn":{"type":"string","example":"01029413157"},"firstName":{"type":"string","example":"STOR"},"lastName":{"type":"string","example":"MÅNE"},"maritalStatus":{"type":"string","enum":["MARRIED","NOT_GIVEN","UNMARRIED","DIVORCED","SEPARATED","WIDOW_ER","REGISTERED_PARTNER","SEPARATED_PARTNER","DIVORCED_PARTNER","REMAINING_PARTNER"]},"citizenships":{"type":"array","items":{"title":"Citizenship","type":"object","properties":{"citizenship":{"type":"string","example":"NOR"},"isApplicable":{"type":"boolean","example":true,"description":"maps to 'erGjeldende' in the original response"}}}},"gender":{"type":"string","example":"MALE","enum":["MALE","FEMALE","UNKNOWN"]},"birthdate":{"type":"string","format":"date","example":"1982-02-21"},"countryOfBirth":{"type":"string","example":"NOR"},"status":{"type":"string","example":"RESIDENT","description":"The current status of the person in the Norwegian Population Registry","enum":["RESIDENT","RELOCATED","DISAPPEARED","DISEASED","CEASED","REGISTERED_BY_BIRTH","TEMPORARY","INACTIVE","NON_RESIDENT","ACTIVE","UNKNOWN"]},"employmentStatus":{"type":"string","description":"Inferred from the applicants income report of the last month.","enum":["PERMANENTLY_EMPLOYED","TEMPORARILY_EMPLOYED","SICKNESS_ALLOWANCE","DISABILITY_PENSION","RETIRED","UNEMPLOYED","OTHER"],"example":"PERMANENTLY_EMPLOYED"},"receivesSocialSecurityBenefits":{"type":"boolean","example":true,"description":"Inferred from the applicants income report of the last month."},"hasAttachmentCharge":{"type":"boolean","example":true,"description":"Searches through the movables registry (løsøre) to find active attachment charges (UTLEGG/UTPANTING)."},"residentialAddress":{"type":["object","null"],"title":"ResidentialAddress","description":"The persons Norwegian residential address. May be null, if the person is living in a foreign country.","properties":{"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"street":{"type":"object","properties":{"name":{"type":"string","example":"Rudvegen"},"number":{"type":"string","example":"57"},"letter":{"type":["string","null"],"example":"A"}}},"municipality":{"type":"object","properties":{"name":{"type":"string","example":"NESBYEN"},"number":{"type":"string","example":"3540"}}}}},"family":{"type":"object","properties":{"numChildrenBelowAge18":{"type":"integer","description":"Number of persons in the family that are below 18 years of age"},"members":{"type":"array","items":{"type":"object","properties":{"ssn":{"type":"string","example":"03028711300","description":"11 digit identification number of the person."},"age":{"type":"integer","example":34},"gender":{"type":"string","enum":["FEMALE","MALE"]},"relation":{"type":"string","enum":["PARENT","SPOUSE_OR_PARTNER","CHILD","SIBLING"],"description":"The persons relation to the family member."}}}}}},"property":{"type":"object","title":"PropertyOverview","description":"Aggregation of Kartverket API and Eiendomsverdi API","properties":{"ownsProperty":{"type":"boolean","example":true},"properties":{"type":"array","items":{"type":"object","title":"Property","discriminator":{"propertyName":"type","mapping":{"SelfOwnedProperty":"./SelfOwnedProperty.yaml","HousingCooperative":"./HousingCooperative.yaml"}},"anyOf":[{"type":"object","title":"SelfOwnedProperty","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}},{"type":"object","title":"HousingCooperative","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"housingCooperative":{"title":"HousingCooperativeInformation","type":"object","properties":{"id":{"type":"string","example":"5424543"},"name":{"type":"string","example":"TERTITTEN BORETTSLAG"},"orgID":{"type":"string","example":"12345678911"},"shareNumber":{"type":"string","example":25}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}}]}}}},"debt":{"type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumAccruedInterestFromDebtCollectors":{"type":"number","format":"double","example":400},"sumOwedMaintenancePayments":{"type":"number","format":"double","example":15000},"sumOwedUnderpaidTax":{"type":"number","format":"double","example":4000},"sumLatePaymentInterest":{"type":"number","format":"double","example":346},"mortgageDebt":{"title":"MortgageDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumEstimatedBalanceByOwnership":{"type":"number","format":"double","example":35000000},"sumOriginalBalanceByOwnership":{"type":"number","format":"double","example":50000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"propertyOwnershipShare":{"type":"number","format":"double","example":0.5,"description":"The ownership share of the property in the mortgage."},"originalBalanceByOwnership":{"type":"number","format":"double","example":3000000,"description":"The original balance multiplied by the property ownership share."},"estimatedBalanceByOwnership":{"type":"number","format":"double","example":2000000,"description":"The estimated balance multiplied by the property ownership share."},"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]}}}},"studentDebt":{"title":"StudentDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"balanceSource":{"type":"string","enum":["SKATTEETATEN"],"example":"SKATTEETATEN","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"autoDebt":{"title":"AutoDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"unsecuredDebt":{"title":"UnsecuredDebtOverview","type":"object","properties":{"sumBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumCreditLimit":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}}}}}}},"income":{"type":"object","title":"IncomeOverview","properties":{"yearlyGrossIncome":{"type":"number","format":"double","example":1010000},"yearlyNetIncome":{"type":"number","format":"double","example":650000},"yearlyDrivingAllowance":{"type":"number","format":"double","example":650000},"yearlyBonus":{"type":"number","format":"double","example":650000},"yearlySalary":{"type":"number","format":"double","example":650000},"yearlyWage":{"type":"number","format":"double","example":650000},"yearlySicknessAllowance":{"type":"number","format":"double","example":650000},"yearlyDisabilityPension":{"type":"number","format":"double","example":650000},"yearlyPension":{"type":"number","format":"double","example":650000},"yearlyUnemploymentBenefit":{"type":"number","format":"double","example":650000},"yearlyWorkAssessmentAllowance":{"type":"number","format":"double","example":650000},"monthlyIncomeRecords":{"type":"array","items":{"title":"MonthlyIncomeRecord","type":"object","properties":{"grossIncome":{"type":"number","format":"double"},"netIncome":{"type":"number","format":"double"},"date":{"type":"string","format":"YYYY-MM"}}},"example":[{"grossIncome":30000,"netIncome":30000,"date":"2019-02"},{"grossIncome":30000,"netIncome":30000,"date":"2019-03"},{"grossIncome":30000,"netIncome":30000,"date":"2019-04"},{"grossIncome":30000,"netIncome":30000,"date":"2019-05"},{"grossIncome":30000,"netIncome":30000,"date":"2019-06"},{"grossIncome":30000,"netIncome":30000,"date":"2019-07"}]},"taxRecords":{"type":"array","description":"Sorted by key \"taxYear\" in descending order","items":{"title":"TaxRecord","type":"object","properties":{"taxYear":{"type":"string","example":"2018"},"yearlyGrossIncome":{"type":"number","format":"double","example":936618},"yearlySalary":{"type":"number","format":"double","example":936616},"yearlyRentalIncome":{"type":"number","format":"double","example":10000},"yearlyEstimatedTax":{"type":"number","format":"double","example":273562.23},"yearlyEstimatedNetIncome":{"type":"number","format":"double","example":663055.77},"employers":{"type":"array","items":{"title":"Employer","type":"object","properties":{"name":{"type":"string","example":"Min Jobb AS"},"orgID":{"type":["string","null"],"example":"123456789"}}}}}}}}}}},"PersonOverviewWithoutConsent":{"type":"object","description":"Returns data for a person where consent is not a requirement.","properties":{"ssn":{"type":"string","example":"01029413157"},"firstName":{"type":"string","example":"STOR"},"lastName":{"type":"string","example":"MÅNE"},"maritalStatus":{"type":"string","enum":["MARRIED","NOT_GIVEN","UNMARRIED","DIVORCED","SEPARATED","WIDOW_ER","REGISTERED_PARTNER","SEPARATED_PARTNER","DIVORCED_PARTNER","REMAINING_PARTNER"]},"citizenships":{"type":"array","items":{"title":"Citizenship","type":"object","properties":{"citizenship":{"type":"string","example":"NOR"},"isApplicable":{"type":"boolean","example":true,"description":"maps to 'erGjeldende' in the original response"}}}},"gender":{"type":"string","example":"MALE","enum":["MALE","FEMALE","UNKNOWN"]},"birthdate":{"type":"string","format":"YYYY-MM-DD","example":"1982-02-21"},"countryOfBirth":{"type":"string","example":"NOR"},"status":{"type":"string","example":"RESIDENT","description":"The current status of the person in the Norwegian Population Registry","enum":["RESIDENT","RELOCATED","DISAPPEARED","DISEASED","CEASED","REGISTERED_BY_BIRTH","TEMPORARY","INACTIVE","NON_RESIDENT","ACTIVE","UNKNOWN"]},"hasAttachmentCharge":{"type":"boolean","example":true,"description":"Searches through the movables registry (løsøre) to find active attachment charges (UTLEGG/UTPANTING)."},"residentialAddress":{"type":["object","null"],"title":"ResidentialAddress","description":"The persons Norwegian residential address. May be null, if the person is living in a foreign country.","properties":{"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"street":{"type":"object","properties":{"name":{"type":"string","example":"Rudvegen"},"number":{"type":"string","example":"57"},"letter":{"type":["string","null"],"example":"A"}}},"municipality":{"type":"object","properties":{"name":{"type":"string","example":"NESBYEN"},"number":{"type":"string","example":"3540"}}}}},"family":{"type":"object","properties":{"numChildrenBelowAge18":{"type":"integer","description":"Number of persons in the family that are below 18 years of age"},"members":{"type":"array","items":{"type":"object","properties":{"ssn":{"type":"string","example":"03028711300","description":"11 digit identification number of the person."},"age":{"type":"integer","example":34},"gender":{"type":"string","enum":["FEMALE","MALE"]},"relation":{"type":"string","enum":["PARENT","SPOUSE_OR_PARTNER","CHILD","SIBLING"],"description":"The persons relation to the family member."}}}}}},"property":{"type":"object","title":"PropertyOverview","description":"Aggregation of Kartverket API and Eiendomsverdi API","properties":{"ownsProperty":{"type":"boolean","example":true},"properties":{"type":"array","items":{"type":"object","title":"Property","discriminator":{"propertyName":"type","mapping":{"SelfOwnedProperty":"./SelfOwnedProperty.yaml","HousingCooperative":"./HousingCooperative.yaml"}},"anyOf":[{"type":"object","title":"SelfOwnedProperty","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}},{"type":"object","title":"HousingCooperative","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"housingCooperative":{"title":"HousingCooperativeInformation","type":"object","properties":{"id":{"type":"string","example":"5424543"},"name":{"type":"string","example":"TERTITTEN BORETTSLAG"},"orgID":{"type":"string","example":"12345678911"},"shareNumber":{"type":"string","example":25}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}}]}}}},"debt":{"type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"mortgageDebt":{"title":"MortgageDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]}}}},"autoDebt":{"title":"AutoDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"unsecuredDebt":{"title":"UnsecuredDebtOverview","type":"object","properties":{"sumBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumCreditLimit":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}}}}}}}}},"PropertyOverview":{"type":"object","title":"PropertyOverview","description":"Aggregation of Kartverket API and Eiendomsverdi API","properties":{"ownsProperty":{"type":"boolean","example":true},"properties":{"type":"array","items":{"type":"object","title":"Property","discriminator":{"propertyName":"type","mapping":{"SelfOwnedProperty":"./SelfOwnedProperty.yaml","HousingCooperative":"./HousingCooperative.yaml"}},"anyOf":[{"type":"object","title":"SelfOwnedProperty","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}},{"type":"object","title":"HousingCooperative","properties":{"id":{"type":"string","example":"039456312"},"type":{"type":"string","enum":["SELF_OWNED","HOUSING_COOPERATIVE"],"example":"SELF_OWNED"},"value":{"type":"number","format":"double","example":5000000},"valueEstimate":{"type":"number","format":"double","example":5000000},"valueEstimateHaircut":{"type":"number","format":"double","example":5000000},"commonDebt":{"type":"number","format":"double","example":5000000},"netValueEstimate":{"type":"number","format":"double","example":2000000},"grossValueEstimate":{"type":"number","format":"double","example":2000000},"areaMarketScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"municipalityScore":{"type":"integer","example":20,"minimum":1,"maximum":20},"customerApprovedValue":{"type":"integer","example":20},"valueEstimateAccuracyLevel":{"type":"number","format":"double","example":4},"purchasedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"cadastralUnitNumber":{"type":["string","null"],"example":"7"},"propertyUnitNumber":{"type":["string","null"],"example":"391"},"leaseholdNumber":{"type":["string","null"],"example":"0"},"condominiumUnitNumber":{"type":["string","null"],"example":"0"},"ownershipShare":{"type":"number","example":0.5},"estateType":{"type":"string","enum":["APARTMENT","DETACHED_HOUSE","TERRACED_HOUSE","SEMI_DETACHED_HOUSE","LEISURE_HOME","DORM","RESIDENTIAL_PLOT","CABIN_PLOT","SCHOOL_KINDERGARTEN","COMMERCIAL_BUILDING","FARM","HOUSING","HOUSE","SHARED_HOUSING","GARAGE","UNDEVELOPED","PUBLIC","HEALTH","MEDIA_COMM","CULTURE_AND_SPORTS","RELIGION","TRANSPORTATION","OTHER","UNKNOWN"],"example":"DETACHED_HOUSE"},"street":{"title":"Street","type":"object","properties":{"name":{"type":["string","null"],"example":"Smedstusvingen"},"number":{"type":["string","null"],"example":"18"},"letter":{"type":["string","null"],"example":"A"}}},"zip":{"title":"Zip","type":"object","properties":{"code":{"type":["string","null"],"example":"1480"},"area":{"type":["string","null"],"example":"SLATTUM"}}},"municipality":{"title":"Municipality","type":"object","properties":{"number":{"type":["string","null"],"example":"3031"},"area":{"type":["string","null"],"example":"NITTEDAL"}}},"housingCooperative":{"title":"HousingCooperativeInformation","type":"object","properties":{"id":{"type":"string","example":"5424543"},"name":{"type":"string","example":"TERTITTEN BORETTSLAG"},"orgID":{"type":"string","example":"12345678911"},"shareNumber":{"type":"string","example":25}}},"liens":{"type":"array","items":{"title":"Lien","type":"object","properties":{"id":{"type":"string","example":"039456312"},"updatedAt":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"creditorName":{"type":"string","example":"SPAREBANKEN TELEMARK"},"creditorOrgNumber":{"type":"string","example":"985621551"},"value":{"type":"number","example":4500000}}}}}}]}}}},"DebtOverview":{"type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumAccruedInterestFromDebtCollectors":{"type":"number","format":"double","example":400},"sumOwedMaintenancePayments":{"type":"number","format":"double","example":15000},"sumOwedUnderpaidTax":{"type":"number","format":"double","example":4000},"sumLatePaymentInterest":{"type":"number","format":"double","example":346},"mortgageDebt":{"title":"MortgageDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumEstimatedBalanceByOwnership":{"type":"number","format":"double","example":35000000},"sumOriginalBalanceByOwnership":{"type":"number","format":"double","example":50000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"propertyOwnershipShare":{"type":"number","format":"double","example":0.5,"description":"The ownership share of the property in the mortgage."},"originalBalanceByOwnership":{"type":"number","format":"double","example":3000000,"description":"The original balance multiplied by the property ownership share."},"estimatedBalanceByOwnership":{"type":"number","format":"double","example":2000000,"description":"The estimated balance multiplied by the property ownership share."},"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]}}}},"studentDebt":{"title":"StudentDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"balanceSource":{"type":"string","enum":["SKATTEETATEN"],"example":"SKATTEETATEN","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"autoDebt":{"title":"AutoDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"unsecuredDebt":{"title":"UnsecuredDebtOverview","type":"object","properties":{"sumBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumCreditLimit":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}}}}}}},"DebtOverviewSimple":{"type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"mortgageDebt":{"title":"MortgageDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]}}}},"autoDebt":{"title":"AutoDebtOverview","type":"object","properties":{"sumEstimatedBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]}}}},"unsecuredDebt":{"title":"UnsecuredDebtOverview","type":"object","properties":{"sumBalance":{"type":"number","format":"double","example":40000000},"sumOriginalBalance":{"type":"number","format":"double","example":60000000},"sumCreditLimit":{"type":"number","format":"double","example":60000000},"debts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}}}}}}},"FamilyOverview":{"type":"object","properties":{"numChildrenBelowAge18":{"type":"integer","description":"Number of persons in the family that are below 18 years of age"},"members":{"type":"array","items":{"type":"object","properties":{"ssn":{"type":"string","example":"03028711300","description":"11 digit identification number of the person."},"age":{"type":"integer","example":34},"gender":{"type":"string","enum":["FEMALE","MALE"]},"relation":{"type":"string","enum":["PARENT","SPOUSE_OR_PARTNER","CHILD","SIBLING"],"description":"The persons relation to the family member."}}}}}},"FamilyMember":{"type":"object","properties":{"ssn":{"type":"string","example":"03028711300","description":"11 digit identification number of the person."},"age":{"type":"integer","example":34},"gender":{"type":"string","enum":["FEMALE","MALE"]},"relation":{"type":"string","enum":["PARENT","SPOUSE_OR_PARTNER","CHILD","SIBLING"],"description":"The persons relation to the family member."}}},"AmortizedDebt":{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},"Metadata":{"type":"object","properties":{"sbl":{"type":"object","properties":{"authCode":{"type":"string","example":"0679c533-5061-496e-8dc5-df786f04a209","description":"Auhtorization code received from Altinn. Used to retrieve the customers data from Skatteetaten."}}}}},"StudentDebt":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"balanceSource":{"type":"string","enum":["SKATTEETATEN"],"example":"SKATTEETATEN","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]},"AutoDebt":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]},"AutoDebtSimple":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"registrationNumber":{"type":"string","example":"BP22352","description":"The registration number of the vehicle."},"balanceSource":{"type":"string","enum":["LOSOREREGISTERET"],"example":"LOSOREREGISTERET","description":"Specifies which source the originalBalance and estimatedBalance come from."}}}]},"MortgageDebt":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"propertyOwnershipShare":{"type":"number","format":"double","example":0.5,"description":"The ownership share of the property in the mortgage."},"originalBalanceByOwnership":{"type":"number","format":"double","example":3000000,"description":"The original balance multiplied by the property ownership share."},"estimatedBalanceByOwnership":{"type":"number","format":"double","example":2000000,"description":"The estimated balance multiplied by the property ownership share."},"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["SKATTEETATEN","KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]},"MortgageDebtSimple":{"type":"object","allOf":[{"type":"object","properties":{"creditorName":{"type":"string","example":"CREDITOR NAME"},"estimatedBalance":{"type":"number","format":"double","example":4107055.83,"description":"An estimate of what the balance might be today."},"originalBalance":{"type":"number","format":"double","example":4407055.83,"description":"The balance gathered from the data source."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Updated date in the source registry."},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"estimatedDuration":{"type":"number","example":260,"description":"Specifies the estimated duration in months used in the amortization calculations"},"estimatedRemainingDuration":{"type":"number","example":180,"description":"Specifies the estimated remaining duration in months of the loan"},"estimatedNominalInterestRate":{"type":"number","example":13.4,"format":"double","description":"Specifies the estimated nominal interest rate used in the amortization calculations"},"estimatedMonthlyPayment":{"type":"number","example":2980.45,"format":"double","description":"Specifies the estimated monthly downpayment as a result of the amortization calculations"}}},{"type":"object","properties":{"adjustedOriginalBalance":{"type":"number","format":"double","example":50000000,"description":"The assumed actual original balance of the mortgage."},"balanceSource":{"type":"string","enum":["KARTVERKET"],"example":"KARTVERKET","description":"Specifies which source the originalBalance and estimatedBalance come from."},"lienId":{"type":["string","null"],"example":"288863652"},"propertyId":{"type":["string","null"],"example":"3713739"}}}]},"UnsecuredDebt":{"type":"object","properties":{"type":{"type":"string","example":"CREDIT_FACILITY","enum":["CREDIT_FACILITY","CHARGE_CARD","REPAYMENT_LOAN"]},"createdAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"updatedAt":{"type":"string","example":"2019-09-07T15:50+00Z","description":"Created date in the source registry."},"creditorOrgNumber":{"type":"string","example":"983521592","description":"Organization number of the creditor"},"creditorName":{"type":"string","example":"SANTANDER CONSUMER BANK AS","description":"Name of the creditor"},"coBorrower":{"type":"string","enum":["HAS_CO_BORROWER","NO_CO_BORROWER","IS_CO_BORROWER"],"example":"HAS_CO_BORROWER","description":"Specifies the coborrower status. HAS_CO_BORROWER means the loan has a co-borrower, NO_CO_BORROWER means there are no co-borrowers, IS_CO_BORROWER means the applicant is a co-borrower of this loan."},"balance":{"type":"number","example":400000,"description":"Outstanding balance of the loan."},"originalBalance":{"type":"number","example":400000,"description":"Applies only to type REPAYMENT_LOAN"},"creditLimit":{"type":"number","example":30000,"description":"Applies only to type CREDIT_FACILITY"},"installmentCharges":{"type":"number","example":40},"installmentChargePeriod":{"type":"string","enum":["MONTHLY","QUARTERLY","HALF_YEARLY","YEARLY"],"example":"MONTHLY"},"interestBearingBalance":{"type":"number","example":55000},"nonInterestBearingBalance":{"type":"number","example":20000},"nomInterestRate":{"type":"number","format":"double","example":12.3},"paymentsPerYear":{"type":"number","example":12},"duration":{"type":"number","example":12,"description":"Applies only to type REPAYMENT_LOAN"}}},"Uuid":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"},"DateTime":{"type":"string","format":"date-time","example":"2019-09-16T22:14:45.624Z"},"BadRequestError":{"type":"object","properties":{"name":{"type":"string","enum":["BadRequest"],"example":"BadRequest"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["400-000","400-001","400-002","400-003","400-004","400-005","400-006","400-007","400-008","400-100","400-101","400-102","400-103","400-104","400-105","400-106","400-107","400-108","400-109","400-110","400-111","400-112"],"example":"400-001"},"message":{"type":"string","example":"Field 'ssn' is required"}}},"UnauthorizedError":{"type":"object","properties":{"name":{"type":"string","enum":["Unauthorized"],"example":"Unauthorized"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["401-000","401-001","401-002","401-003","401-004","401-005","401-006","401-007"],"example":"401-000"},"message":{"type":"string","example":"Client is not authenticated"}}},"ForbiddenError":{"type":"object","properties":{"name":{"type":"string","enum":["Forbidden"],"example":"Forbidden"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["403-000","403-001"],"example":"403-000"},"message":{"type":"string","example":"Client does not have access to this resource"}}},"NotFoundError":{"type":"object","properties":{"name":{"type":"string","enum":["NotFound"],"example":"NotFound"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["404-000","404-001","404-002"],"example":"404-000"},"message":{"type":"string","example":"The requested resource was not found"}}},"ConflictError":{"type":"object","properties":{"name":{"type":"string","enum":["Conflict"],"example":"Conflict"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["409-000","409-001","409-002"],"example":"409-000"},"message":{"type":"string","example":"A resource with this identifier already exists"}}},"UnprocessableContentError":{"type":"object","properties":{"name":{"type":"string","enum":["UnprocessableContent"],"example":"UnprocessableContent"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["422-000","422-001"],"example":"422-000"},"message":{"type":"string","example":"The request content could not be processed"}}},"TooManyRequestsError":{"type":"object","properties":{"name":{"type":"string","enum":["TooManyRequests"],"example":"TooManyRequests"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["429-000"],"example":"429-000"},"message":{"type":"string","example":"Too many requests. Please try again later."}}},"InternalServerError":{"type":"object","properties":{"name":{"type":"string","enum":["InternalServerError"],"example":"InternalServerError"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["500-000","500-001"],"example":"500-000"},"message":{"type":"string","example":"An unexpected internal error occurred"}}},"BadGatewayError":{"type":"object","properties":{"name":{"type":"string","enum":["BadGateway"],"example":"BadGateway"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["502-000","502-001"],"example":"502-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}},"ServiceUnavailableError":{"type":"object","properties":{"name":{"type":"string","enum":["ServiceUnavailable"],"example":"ServiceUnavailable"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["503-000"],"example":"503-000"},"message":{"type":"string","example":"An error occurred while interacting with a third party service"}}},"GatewayTimeoutError":{"type":"object","properties":{"name":{"type":"string","enum":["GatewayTimeout"],"example":"GatewayTimeout"},"code":{"type":"string","description":"Unique error code in format HTTP_STATUS-SEQUENCE","enum":["504-000"],"example":"504-000"},"message":{"type":"string","example":"The request timed out"}}},"OAuth2ErrorResponse":{"description":"OAuth 2.0 Error Response","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":115},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client does not support authorization code flow."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2BadRequestResponse":{"description":"OAuth 2.0 Bad Request","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2BadRequestResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"example":"invalid_request"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":400},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The request is missing a required parameter."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2UnauthorizedResponse":{"description":"OAuth 2.0 Unauthorized","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2UnauthorizedResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_client"],"example":"invalid_client"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":401},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Client authentication failed."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2NotFoundResponse":{"description":"OAuth 2.0 Not Found","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2NotFoundResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["invalid_request","not_found"],"example":"not_found"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":404},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The requested resource was not found."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2TooManyRequestsResponse":{"description":"OAuth 2.0 Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and no `error_timestamp` or `X-Request-ID`, as the request never reached the API.","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"Retry-After":{"description":"Seconds to wait before retrying. Sent when the rate limit rejects a request.","schema":{"type":"integer","example":60}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TooManyRequestsResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["too_many_requests"],"example":"too_many_requests"},"error_code":{"type":"string","description":"Error code for programmatic handling, in the format HTTP_STATUS-SEQUENCE","example":"429-000"},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai/api-reference/errors"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"Too many requests. Please try again later."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2InternalServerErrorResponse":{"description":"OAuth 2.0 Internal Server Error","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2InternalServerErrorResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["server_error"],"example":"server_error"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":500},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server encountered an unexpected condition."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2ServiceUnavailableResponse":{"description":"OAuth 2.0 Service Unavailable","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2ServiceUnavailableResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":503},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server is currently unable to handle the request."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}},"OAuth2TimeoutResponse":{"description":"OAuth 2.0 Gateway Timeout","headers":{"Content-Type":{"description":"The content type of the response.","example":"application/json; charset=utf-8","schema":{"type":"string","enum":["application/json; charset=utf-8"]}},"X-Request-ID":{"description":"UUID generated on each request. Provide this id to customer support if an error occurs.","schema":{"type":"string","format":"uuid","example":"0679c533-5061-496e-8dc5-df786f04a209"}}},"content":{"application/json":{"schema":{"title":"OAuth2TimeoutResponse","type":"object","properties":{"error":{"type":"string","description":"A single ASCII error code","enum":["temporarily_unavailable"],"example":"temporarily_unavailable"},"error_code":{"type":"integer","description":"Numeric error code for programmatic handling","example":504},"error_uri":{"type":"string","format":"uri","description":"A URI identifying a human-readable web page with information about the error","example":"https://docs.neobits.ai"},"error_description":{"type":"string","description":"Human-readable ASCII text providing additional information","example":"The authorization server did not receive a timely response."},"error_timestamp":{"type":"string","format":"date-time","description":"The timestamp when the error occurred","example":"2025-06-25T15:29:49.992Z"}},"required":["error"]}}}}}}}