{"id":16142868,"url":"https://github.com/grab/grabfood-api-sdk-go","last_synced_at":"2025-09-25T09:26:48.541Z","repository":{"id":257814354,"uuid":"855586267","full_name":"grab/grabfood-api-sdk-go","owner":"grab","description":"Go API client for GrabFood","archived":false,"fork":false,"pushed_at":"2025-03-12T06:48:12.000Z","size":416,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T07:29:40.294Z","etag":null,"topics":["go-client","grab","grabfood","openapi"],"latest_commit_sha":null,"homepage":"https://developer.grab.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-11T05:47:01.000Z","updated_at":"2025-03-12T06:45:20.000Z","dependencies_parsed_at":"2024-10-08T09:22:35.185Z","dependency_job_id":"1aa2a8f6-9d40-4e20-81df-327783c91b2b","html_url":"https://github.com/grab/grabfood-api-sdk-go","commit_stats":null,"previous_names":["grab/grabfood-api-sdk-go"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grab%2Fgrabfood-api-sdk-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grab%2Fgrabfood-api-sdk-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grab%2Fgrabfood-api-sdk-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grab%2Fgrabfood-api-sdk-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grab","download_url":"https://codeload.github.com/grab/grabfood-api-sdk-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247535797,"owners_count":20954623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go-client","grab","grabfood","openapi"],"created_at":"2024-10-10T00:07:36.214Z","updated_at":"2025-09-25T09:26:43.501Z","avatar_url":"https://github.com/grab.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go API client for GrabFood\n\n## Overview\nThis API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.  By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.\n\n- API version: 1.1.3\n- Package version: 1.0.2\n- Generator version: 7.8.0\n- Build package: org.openapitools.codegen.languages.GoClientCodegen\n\nFor more information, please visit [https://developer.grab.com](https://developer.grab.com)\n\n## Installation\n\n```shell\ngo get github.com/grab/grabfood-api-sdk-go\n```\n\nPut the package under your project folder and add the following in import:\n\n```go\nimport grabfood \"github.com/grab/grabfood-api-sdk-go\"\n```\n\n## Usage Example\n\nIn the example below, we start by acquiring an OAuth2 access token. In your applications, it's important to handle OAuth2 tokens efficiently. This means:\n- Store the received access token once it's obtained.\n- Use this stored access token for as long as it's valid.\n- Only request a new access token when the current one has expired.\n  \nBy following these practices, you minimize the number of requests to the server, making your application more efficient and responsive. \n\nYou can usually determine the validity of a token by the `expires_in` attribute in the OAuth2 token response.\n\n```go\nconfig := grabfood.NewConfiguration()\napiClient := grabfood.NewAPIClient(config)\nctx := context.WithValue(context.Background(), grabfood.ContextServerIndex, grabfood.StgEnv)\n\ngrabOauthRequest := *grabfood.NewGrabOauthRequest(\"client_id\", \"client_secret\", \"client_credentials\", \"food.partner_api\")\n\nauthResp, _, _ := apiClient.GetOauthGrabAPI.GetOauthGrab(ctx).GrabOauthRequest(grabOauthRequest).Execute()\n\n// Request a new token only when the previous one has expired.\n// Can utilize the `expires_in` from *authResp.ExpiresIn to determine the validity of the token.\nACCESS_TOKEN := *authResp.AccessToken\n\nauthorization := \"Bearer \" + ACCESS_TOKEN\nmerchantID := \"1-CYNGRUNGSBCCC\"\nresp, _, _ := apiClient.GetStoreHourAPI.GetStoreHour(ctx, merchantID).Authorization(authorization).Execute()\n\nfmt.Printf(\"Response from `GetStoreHourAPI.GetStoreHour`: %+v\\n\", resp)\n```\n\nFor handling webhook requests, we provide dedicated models for both requests and responses. Please refer to the list of available models provided below for more details.\n\n## Documentation for API Endpoints\n\nThe base URL for OAuth2 URIs is https://api.grab.com\n\nFor other GrabFood partner API endpoints, URIs are relative to https://partner-api.grab.com/grabfood\n\nClass | Method | HTTP request | Description\n------------ | ------------- | ------------- | -------------\n*AcceptRejectOrderAPI* | [**AcceptRejectOrder**](docs/AcceptRejectOrderAPI.md#acceptrejectorder) | **Post** /partner/v1/order/prepare | Manually accept/reject orders\n*CancelOrderAPI* | [**CancelOrder**](docs/CancelOrderAPI.md#cancelorder) | **Put** /partner/v1/order/cancel | Cancel an order\n*CheckOrderCancelableAPI* | [**CheckOrderCancelable**](docs/CheckOrderCancelableAPI.md#checkordercancelable) | **Get** /partner/v1/order/cancelable | Check order cancelable\n*CreateCampaignAPI* | [**CreateCampaign**](docs/CreateCampaignAPI.md#createcampaign) | **Post** /partner/v1/campaigns | Create campaign\n*CreateSelfServeJourneyAPI* | [**CreateSelfServeJourney**](docs/CreateSelfServeJourneyAPI.md#createselfservejourney) | **Post** /partner/v1/self-serve/activation | Create self serve journey\n*DeleteCampaignAPI* | [**DeleteCampaign**](docs/DeleteCampaignAPI.md#deletecampaign) | **Delete** /partner/v1/campaigns/{campaign_id} | Delete campaigns\n*EditOrderAPI* | [**EditOrder**](docs/EditOrderAPI.md#editorder) | **Put** /partner/v1/orders/{orderID} | Edit Order\n*GetDineinVoucherAPI* | [**GetDineinVoucher**](docs/GetDineinVoucherAPI.md#getdineinvoucher) | **Get** /partner/v1/dinein/voucher | Get Dine In Voucher\n*GetOauthGrabAPI* | [**GetOauthGrab**](docs/GetOauthGrabAPI.md#getoauthgrab) | **Post** /grabid/v1/oauth2/token | Get Oauth access token\n*GetStoreHourAPI* | [**GetStoreHour**](docs/GetStoreHourAPI.md#getstorehour) | **Get** /partner/v2/merchants/{merchantID}/store/hours | Get Store Hours\n*GetStoreStatusAPI* | [**GetStoreStatus**](docs/GetStoreStatusAPI.md#getstorestatus) | **Get** /partner/v1/merchants/{merchantID}/store/status | Get Store Status\n*ListCampaignAPI* | [**ListCampaign**](docs/ListCampaignAPI.md#listcampaign) | **Get** /partner/v1/campaigns | List campaigns\n*ListOrdersAPI* | [**ListOrders**](docs/ListOrdersAPI.md#listorders) | **Get** /partner/v1/orders | List orders\n*MarkOrderReadyAPI* | [**MarkOrderReady**](docs/MarkOrderReadyAPI.md#markorderready) | **Post** /partner/v1/orders/mark | Mark order as ready\n*NotifyMembershipWebviewAPI* | [**NotifyMembershipWebview**](docs/NotifyMembershipWebviewAPI.md#notifymembershipwebview) | **Post** /partner/v1/membership/notify | Notify Membership\n*PauseStoreAPI* | [**PauseStore**](docs/PauseStoreAPI.md#pausestore) | **Put** /partner/v1/merchant/pause | Pause store\n*RedeemDineinVoucherAPI* | [**RedeemDineinVoucher**](docs/RedeemDineinVoucherAPI.md#redeemdineinvoucher) | **Post** /partner/v1/dinein/voucher/redeem | Redeem Dine In Voucher\n*TraceMenuSyncAPI* | [**TraceMenuSync**](docs/TraceMenuSyncAPI.md#tracemenusync) | **Get** /partner/v1/merchant/menu/trace | Trace menu sync\n*UpdateCampaignAPI* | [**UpdateCampaign**](docs/UpdateCampaignAPI.md#updatecampaign) | **Put** /partner/v1/campaigns/{campaign_id} | Update campaign\n*UpdateDeliveryStateAPI* | [**UpdateDeliveryState**](docs/UpdateDeliveryStateAPI.md#updatedeliverystate) | **Post** /partner/v1/order/delivery | Update delivery state\n*UpdateMenuNotificationAPI* | [**UpdateMenuNotification**](docs/UpdateMenuNotificationAPI.md#updatemenunotification) | **Post** /partner/v1/merchant/menu/notification | Notify Grab of updated menu\n*UpdateMenuRecordAPI* | [**BatchUpdateMenu**](docs/UpdateMenuRecordAPI.md#batchupdatemenu) | **Put** /partner/v1/batch/menu | Batch Update Menu\n*UpdateMenuRecordAPI* | [**UpdateMenu**](docs/UpdateMenuRecordAPI.md#updatemenu) | **Put** /partner/v1/menu | Update menu record\n*UpdateOrderReadyTimeAPI* | [**UpdateOrderReadyTime**](docs/UpdateOrderReadyTimeAPI.md#updateorderreadytime) | **Put** /partner/v1/order/readytime | Update new order ready time\n*UpdateStoreDeliveryHourAPI* | [**UpdateStoreDeliveryHour**](docs/UpdateStoreDeliveryHourAPI.md#updatestoredeliveryhour) | **Put** /partner/v1/merchants/{merchantID}/store/opening-hours | Update Store Delivery Hours\n*UpdateStoreDineInHourAPI* | [**UpdateStoreDineInHour**](docs/UpdateStoreDineInHourAPI.md#updatestoredineinhour) | **Put** /partner/v1/merchants/{merchantID}/store/dine-in-hours | Update Store Dine-in Hours\n*UpdateStoreSpecialHourAPI* | [**UpdateStoreSpecialHour**](docs/UpdateStoreSpecialHourAPI.md#updatestorespecialhour) | **Put** /partner/v2/merchants/{merchantID}/store/special-opening-hour | Update Store Special Hours\n\n\n## Documentation For Models\n\n - [AcceptOrderRequest](docs/AcceptOrderRequest.md)\n - [Address](docs/Address.md)\n - [AdvancedPricing](docs/AdvancedPricing.md)\n - [BatchUpdateMenuItem](docs/BatchUpdateMenuItem.md)\n - [BatchUpdateMenuResponse](docs/BatchUpdateMenuResponse.md)\n - [BindMembershipNativeRequest](docs/BindMembershipNativeRequest.md)\n - [BindMembershipNativeResponse](docs/BindMembershipNativeResponse.md)\n - [Campaign](docs/Campaign.md)\n - [CampaignConditions](docs/CampaignConditions.md)\n - [CampaignDiscount](docs/CampaignDiscount.md)\n - [CampaignQuotas](docs/CampaignQuotas.md)\n - [CampaignScope](docs/CampaignScope.md)\n - [CancelCode](docs/CancelCode.md)\n - [CancelOrderLimitType](docs/CancelOrderLimitType.md)\n - [CancelOrderRequest](docs/CancelOrderRequest.md)\n - [CancelOrderResponse](docs/CancelOrderResponse.md)\n - [CancelReason](docs/CancelReason.md)\n - [CheckOrderCancelableResponse](docs/CheckOrderCancelableResponse.md)\n - [Coordinates](docs/Coordinates.md)\n - [CreateCampaignRequest](docs/CreateCampaignRequest.md)\n - [CreateCampaignResponse](docs/CreateCampaignResponse.md)\n - [CreateSelfServeJourneyRequest](docs/CreateSelfServeJourneyRequest.md)\n - [CreateSelfServeJourneyRequestPartner](docs/CreateSelfServeJourneyRequestPartner.md)\n - [CreateSelfServeJourneyResponse](docs/CreateSelfServeJourneyResponse.md)\n - [Currency](docs/Currency.md)\n - [DineIn](docs/DineIn.md)\n - [EditOrderItem](docs/EditOrderItem.md)\n - [EditOrderRequest](docs/EditOrderRequest.md)\n - [Error](docs/Error.md)\n - [GetDineInVoucherResponse](docs/GetDineInVoucherResponse.md)\n - [GetMembershipNativeResponse](docs/GetMembershipNativeResponse.md)\n - [GetMembershipNativeResponsePointInfo](docs/GetMembershipNativeResponsePointInfo.md)\n - [GetMembershipRequest](docs/GetMembershipRequest.md)\n - [GetMembershipWebviewResponse](docs/GetMembershipWebviewResponse.md)\n - [GetMenuNewResponse](docs/GetMenuNewResponse.md)\n - [GetMenuOldResponse](docs/GetMenuOldResponse.md)\n - [GetRewardNativeRequest](docs/GetRewardNativeRequest.md)\n - [GetRewardNativeResponse](docs/GetRewardNativeResponse.md)\n - [GrabOauthRequest](docs/GrabOauthRequest.md)\n - [GrabOauthResponse](docs/GrabOauthResponse.md)\n - [ListCampaignResponse](docs/ListCampaignResponse.md)\n - [ListOrdersResponse](docs/ListOrdersResponse.md)\n - [MarkOrderRequest](docs/MarkOrderRequest.md)\n - [MenuCategory](docs/MenuCategory.md)\n - [MenuEntity](docs/MenuEntity.md)\n - [MenuEntityError](docs/MenuEntityError.md)\n - [MenuItem](docs/MenuItem.md)\n - [MenuModifier](docs/MenuModifier.md)\n - [MenuSection](docs/MenuSection.md)\n - [MenuSectionCategory](docs/MenuSectionCategory.md)\n - [MenuSectionCategoryItem](docs/MenuSectionCategoryItem.md)\n - [MenuSyncFail](docs/MenuSyncFail.md)\n - [MenuSyncFailCategory](docs/MenuSyncFailCategory.md)\n - [MenuSyncFailItem](docs/MenuSyncFailItem.md)\n - [MenuSyncFailModifier](docs/MenuSyncFailModifier.md)\n - [MenuSyncFailModifierGroup](docs/MenuSyncFailModifierGroup.md)\n - [MenuSyncFailServiceHours](docs/MenuSyncFailServiceHours.md)\n - [MenuSyncResponse](docs/MenuSyncResponse.md)\n - [MenuSyncWebhookRequest](docs/MenuSyncWebhookRequest.md)\n - [ModifierGroup](docs/ModifierGroup.md)\n - [NewOrderTimeRequest](docs/NewOrderTimeRequest.md)\n - [NotifyMembershipWebviewRequest](docs/NotifyMembershipWebviewRequest.md)\n - [OpenPeriod](docs/OpenPeriod.md)\n - [Order](docs/Order.md)\n - [OrderCampaign](docs/OrderCampaign.md)\n - [OrderDeliveryRequest](docs/OrderDeliveryRequest.md)\n - [OrderFeatureFlags](docs/OrderFeatureFlags.md)\n - [OrderFreeItem](docs/OrderFreeItem.md)\n - [OrderItem](docs/OrderItem.md)\n - [OrderItemModifier](docs/OrderItemModifier.md)\n - [OrderPrice](docs/OrderPrice.md)\n - [OrderPromo](docs/OrderPromo.md)\n - [OrderReadyEstimation](docs/OrderReadyEstimation.md)\n - [OrderStateRequest](docs/OrderStateRequest.md)\n - [OutOfStockInstruction](docs/OutOfStockInstruction.md)\n - [PartnerOauthRequest](docs/PartnerOauthRequest.md)\n - [PartnerOauthResponse](docs/PartnerOauthResponse.md)\n - [PauseStoreRequest](docs/PauseStoreRequest.md)\n - [Purchasability](docs/Purchasability.md)\n - [PushIntegrationStatusWebhookRequest](docs/PushIntegrationStatusWebhookRequest.md)\n - [Receiver](docs/Receiver.md)\n - [RedeemDineInVoucherRequest](docs/RedeemDineInVoucherRequest.md)\n - [RedeemDineInVoucherResponse](docs/RedeemDineInVoucherResponse.md)\n - [RedeemResult](docs/RedeemResult.md)\n - [RegisterMembershipNativeRequest](docs/RegisterMembershipNativeRequest.md)\n - [RegisterMembershipNativeResponse](docs/RegisterMembershipNativeResponse.md)\n - [RewardItem](docs/RewardItem.md)\n - [SellingTime](docs/SellingTime.md)\n - [ServiceHour](docs/ServiceHour.md)\n - [ServiceHours](docs/ServiceHours.md)\n - [SpecialOpeningHour](docs/SpecialOpeningHour.md)\n - [SpecialOpeningHourMetadata](docs/SpecialOpeningHourMetadata.md)\n - [SpecialOpeningHourOpeningHours](docs/SpecialOpeningHourOpeningHours.md)\n - [StoreHour](docs/StoreHour.md)\n - [StoreHourResponse](docs/StoreHourResponse.md)\n - [StoreStatusResponse](docs/StoreStatusResponse.md)\n - [SubmitOrderRequest](docs/SubmitOrderRequest.md)\n - [UnbindMembershipNativeRequest](docs/UnbindMembershipNativeRequest.md)\n - [UnlinkMembershipWebviewRequest](docs/UnlinkMembershipWebviewRequest.md)\n - [UpdateAdvancedPricing](docs/UpdateAdvancedPricing.md)\n - [UpdateCampaignRequest](docs/UpdateCampaignRequest.md)\n - [UpdateDeliveryHourRequest](docs/UpdateDeliveryHourRequest.md)\n - [UpdateDeliveryHourResponse](docs/UpdateDeliveryHourResponse.md)\n - [UpdateDineInHourRequest](docs/UpdateDineInHourRequest.md)\n - [UpdateDineInHourResponse](docs/UpdateDineInHourResponse.md)\n - [UpdateMenuItem](docs/UpdateMenuItem.md)\n - [UpdateMenuModifier](docs/UpdateMenuModifier.md)\n - [UpdateMenuNotifRequest](docs/UpdateMenuNotifRequest.md)\n - [UpdateMenuRequest](docs/UpdateMenuRequest.md)\n - [UpdatePurchasability](docs/UpdatePurchasability.md)\n - [UpdateSpecialHourRequest](docs/UpdateSpecialHourRequest.md)\n - [UpdateSpecialHourResponse](docs/UpdateSpecialHourResponse.md)\n - [Voucher](docs/Voucher.md)\n - [VoucherDescriptionInfo](docs/VoucherDescriptionInfo.md)\n - [WorkingHour](docs/WorkingHour.md)\n - [WorkingHourDay](docs/WorkingHourDay.md)\n\n\n## Documentation for Utility Methods\n\nDue to the fact that model structure members are all pointers, this package contains\na number of utility functions to easily obtain pointers to values of basic types.\nEach of these functions takes a value of the given basic type and returns a pointer to it:\n\n* `PtrBool`\n* `PtrInt`\n* `PtrInt32`\n* `PtrInt64`\n* `PtrFloat`\n* `PtrFloat32`\n* `PtrFloat64`\n* `PtrString`\n* `PtrTime`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrab%2Fgrabfood-api-sdk-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrab%2Fgrabfood-api-sdk-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrab%2Fgrabfood-api-sdk-go/lists"}