Skip to main content

Create Auction

Creates a new auction with the specified details.

  • URI: /api/Auctions
  • Method: POST
  • Authentication: Required (JWT)
  • Permission Required: Auctions.Create (default value: "AuctionR:Auctions:Create")

🔐 Permission values are configurable via the Permissions section in appsettings.json.


Request Body

Content-Type: application/json

FieldTypeRequiredDescription
productIdintYesIdentifier of the product being auctioned
ownerIdintYesIdentifier of the auction creator
titlestringNoTitle of the auction
descriptionstringNoDetailed description of the auction item
startingPricedecimalYesInitial price of the auction
minimumBidIncrementdecimalYesMinimum allowed increment between bids
currencystringYesISO currency code (e.g., "USD", "EUR")
startTimestringYesAuction start time (ISO 8601 format)
endTimestringYesAuction end time (ISO 8601 format)

Sample Request

POST /api/Auctions HTTP/1.1
Authorization: Bearer {your_jwt_token}
Content-Type: application/json

{
"productId": 123,
"ownerId": 456,
"title": "Vintage Guitar Auction",
"description": "A well-preserved vintage guitar from the 1960s.",
"startingPrice": 1500.00,
"minimumBidIncrement": 100.00,
"currency": "USD",
"startTime": "2025-06-10T14:00:00Z",
"endTime": "2025-06-12T14:00:00Z"
}

Response

Status Code: 201 Created
Location Header: /api/Auctions/{id} — URI of the newly created auction

Response Body Example

{
"success": true,
"message": "Auction Created successfully.",
"data": {
"id": 789,
"productId": 123,
"ownerId": 456,
"title": "Vintage Guitar Auction",
"description": "A well-preserved vintage guitar from the 1960s.",
"startingPrice": 1500.0,
"minimumBidIncrement": 100.0,
"currency": "USD",
"startTime": "2025-06-10T14:00:00Z",
"endTime": "2025-06-12T14:00:00Z",
"status": "Pending"
}
}

Possible Error Responses

Status CodeMeaningWhen it Happens
400Bad RequestInput validation fails (e.g., missing/invalid fields)
401UnauthorizedJWT is missing or invalid
403ForbiddenCaller does not have permission to create auctions
429Too Many RequestsRate limiting exceeded
500Internal Server ErrorUnexpected server-side error