{"openapi":"3.1.0","info":{"title":"jasima.app API","description":":::info[Under construction]\nThis documentation is a work in progress. Please [get in touch](/contact) with us if you have any questions.\n:::\n\nLearn how to use the jasima.app API.\nEverything that can be done within the portal can also be achieved using our API, documented in this section.\n\n## Authentication\n\nWe use OpenID Connect for authentication, and authentication must be performed using your normal user account with the\nauthorisation code flow.\nYou may set the `redirect_uri` to `localhost` (any port) to allow the use of desktop applications, command-line tools,\nor scripts.\nOnce you have retrieved your access token, this should be passed to the API in an \"Authorization\" header:\n\n```http request\nAuthorization: Bearer <token>\n```\n\nAdditionally, you must pass a header containing your organisation identifier.\nThis allows individual users to operate on the resources of multiple organisations without requiring multiple user\ncredentials.\n\n```http request\nOrganisation-Id: 263\n```\n\n## Data Format\n\nThe API uses JSON as the default format for both requests and responses, ensuring consistency and simplicity in data\nhandling:\n\n* For GET requests, the API expects parameters to be passed via query strings.\n* For other HTTP methods (e.g., POST, PUT), the request body (if required) should be formatted as JSON.\n\nThere is no need to explicitly specify content encoding in the headers, as the API assumes JSON by default for all\napplicable requests and responses.\n\n## Pagination\n\nThe API supports pagination to manage large datasets efficiently. Use the page and perPage query parameters to control the data returned in your requests.\nParameters:\n\n* page: The page number to retrieve.\n* size: The number of items to include per page.\n\nExample request:\n\n```http request\nGET https://api.jasima.app/api/v1/widgets?page=1&size=10\n```\n\nExample response:\n\n```http request\n{\n \"items\": [\n ],\n \"total\": 0,\n \"page\": 1,\n \"size\": 10,\n \"pages\": 0\n}\n```\n\nBear in mind the following:\n\n* The `page` field in the response indicates the current page being viewed. \n* The `total` field shows the total number of items available.\n* The `pages` field indicates the total number of pages, and can be used to determine whether there are additional pages\n to fetch.\n\nUse this structure to efficiently navigate through large datasets while ensuring optimal performance.\n\n## Errors\n\n:::info[TODO]\nDocument the common status codes, and the validation error response format.\n:::\n\n## Schemas","version":"0.0.0"},"paths":{"/api/v1/mirrors/origins":{"get":{"tags":["Web Mirrors"],"summary":"Get Origins","operationId":"get_origins_api_v1_mirrors_origins_get","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":50,"title":"Size"},"description":"Page size"},{"name":"organisation-id","in":"header","required":false,"schema":{"type":"integer","title":"Organisation ID","description":"The ID of your organisation. You can find this within the portal.","default":1},"description":"The ID of your organisation. You can find this within the portal."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_MirrorsOriginSummary_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Web Mirrors"],"summary":"Create Origin","operationId":"create_origin_api_v1_mirrors_origins_post","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"organisation-id","in":"header","required":false,"schema":{"type":"integer","title":"Organisation ID","description":"TheIDofyourorganisation