{"note":"OpenAPI conversion -- returning structured metadata","name":"up-com-au","description":"Up API","version":"v1","base_url":"https://api.up.com.au/api/v1","endpoints":20,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Up API\n@base https://api.up.com.au/api/v1\n@version v1\n@auth Bearer bearer\n@endpoints 20\n@toc accounts(3), attachments(2), categories(2), transactions(5), util(1), tags(1), webhooks(6)\n\n@group accounts\n@endpoint GET /accounts\n@desc List accounts\n@optional {page[size]: int # The number of records to return in each page., filter[accountType]: any # The type of account for which to return records. This can be used to filter Savers from spending accounts., filter[ownershipType]: any # The account ownership structure for which to return records. This can be used to filter 2Up accounts from Up accounts.}\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful Response\n\n@endpoint GET /accounts/{id}\n@desc Retrieve account\n@required {id: str # The unique identifier for the account.}\n@returns(200) {data: any} # Successful Response\n\n@endgroup\n\n@group attachments\n@endpoint GET /attachments\n@desc List attachments\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful Response\n\n@endpoint GET /attachments/{id}\n@desc Retrieve attachment\n@required {id: str # The unique identifier for the attachment.}\n@returns(200) {data: any} # Successful Response\n\n@endgroup\n\n@group categories\n@endpoint GET /categories\n@desc List categories\n@optional {filter[parent]: str # The unique identifier of a parent category for which to return only its children. Providing an invalid category identifier results in a `404` response.}\n@returns(200) {data: [map]} # Successful Response\n\n@endpoint GET /categories/{id}\n@desc Retrieve category\n@required {id: str # The unique identifier for the category.}\n@returns(200) {data: any} # Successful Response\n\n@endgroup\n\n@group transactions\n@endpoint PATCH /transactions/{transactionId}/relationships/category\n@desc Categorize transaction\n@required {transactionId: str # The unique identifier for the transaction., data: any # The category to set on the transaction. Set this entire key to `null` de-categorize a transaction.}\n@returns(204) Successful Response\n\n@endgroup\n\n@group util\n@endpoint GET /util/ping\n@desc Ping\n@returns(200) {meta: map{id: str, statusEmoji: str}} # Successful Response\n@errors {401: Not Authorized}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags\n@desc List tags\n@optional {page[size]: int # The number of records to return in each page.}\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful Response\n\n@endgroup\n\n@group transactions\n@endpoint POST /transactions/{transactionId}/relationships/tags\n@desc Add tags to transaction\n@required {transactionId: str # The unique identifier for the transaction., data: [map{type!: str, id!: str}] # The tags to add to or remove from the transaction.}\n@returns(204) Successful Response\n\n@endpoint DELETE /transactions/{transactionId}/relationships/tags\n@desc Remove tags from transaction\n@required {transactionId: str # The unique identifier for the transaction., data: [map{type!: str, id!: str}] # The tags to add to or remove from the transaction.}\n@returns(204) Successful Response\n\n@endpoint GET /transactions\n@desc List transactions\n@optional {page[size]: int # The number of records to return in each page., filter[status]: any # The transaction status for which to return records. This can be used to filter `HELD` transactions from those that are `SETTLED`., filter[since]: str(date-time) # The start date-time from which to return records, formatted according to rfc-3339. Not to be used for pagination purposes., filter[until]: str(date-time) # The end date-time up to which to return records, formatted according to rfc-3339. Not to be used for pagination purposes., filter[category]: str # The category identifier for which to filter transactions. Both parent and child categories can be filtered through this parameter. Providing an invalid category identifier results in a `404` response., filter[tag]: str # A transaction tag to filter for which to return records. If the tag does not exist, zero records are returned and a success response is given.}\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful Response\n\n@endpoint GET /transactions/{id}\n@desc Retrieve transaction\n@required {id: str # The unique identifier for the transaction.}\n@returns(200) {data: any} # Successful Response\n\n@endgroup\n\n@group accounts\n@endpoint GET /accounts/{accountId}/transactions\n@desc List transactions by account\n@required {accountId: str # The unique identifier for the account.}\n@optional {page[size]: int # The number of records to return in each page., filter[status]: any # The transaction status for which to return records. This can be used to filter `HELD` transactions from those that are `SETTLED`., filter[since]: str(date-time) # The start date-time from which to return records, formatted according to rfc-3339. Not to be used for pagination purposes., filter[until]: str(date-time) # The end date-time up to which to return records, formatted according to rfc-3339. Not to be used for pagination purposes., filter[category]: str # The category identifier for which to filter transactions. Both parent and child categories can be filtered through this parameter. Providing an invalid category identifier results in a `404` response., filter[tag]: str # A transaction tag to filter for which to return records. If the tag does not exist, zero records are returned and a success response is given.}\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful Response\n\n@endgroup\n\n@group webhooks\n@endpoint GET /webhooks\n@desc List webhooks\n@optional {page[size]: int # The number of records to return in each page.}\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful Response\n\n@endpoint POST /webhooks\n@desc Create webhook\n@required {data: any # The webhook resource to create.}\n@returns(201) {data: any} # Created\n\n@endpoint GET /webhooks/{id}\n@desc Retrieve webhook\n@required {id: str # The unique identifier for the webhook.}\n@returns(200) {data: any} # Successful Response\n\n@endpoint DELETE /webhooks/{id}\n@desc Delete webhook\n@required {id: str # The unique identifier for the webhook.}\n@returns(204) Deleted\n\n@endpoint POST /webhooks/{webhookId}/ping\n@desc Ping webhook\n@required {webhookId: str # The unique identifier for the webhook.}\n@returns(201) {data: any} # Successful response\n\n@endpoint GET /webhooks/{webhookId}/logs\n@desc List webhook logs\n@required {webhookId: str # The unique identifier for the webhook.}\n@optional {page[size]: int # The number of records to return in each page.}\n@returns(200) {data: [map], links: map{prev: str?, next: str?}} # Successful response\n\n@endgroup\n\n@end\n"}