{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"53646fe7-333c-4bb2-a8c9-dc37939f3949","name":"Sweap Core API","description":"## Endpoints\n\nAPI Base URL: [https://api.sweap.io/core/v1](https://api.sweap.io/core/v1)\n\nAPI Version: 1.5.4\n\nAvailable endpoints are:\n\n- `/events`\n\n- `/event-statistics`\n\n- `/guests`\n\n- `/categories`\n\n- `/guest-bulk-imports`\n\n- `/checkins`\n\n- `/visibility-groups`\n\n- `/event-tags`\n\n- `/recipients`\n\n- `/contacts` (BETA)\n\n- `/registration-pages` (restricted)\n\n- `/management`\n\n## OpenAPI Specification\n\nAn [OpenAPI specification (OAS)](https://www.openapis.org/) is available at this URL: [https://api.sweap.io/openapi/api-docs/core](https://api.sweap.io/openapi/api-docs/core)  \nIt can be used to generate an API client as described [here](https://openapi-generator.tech/).\n\n## API Updates\n\nNews and updates about API changes are published on our Postman page:\n\n- [Sweap Postman Workspace](https://www.postman.com/sweapio)\n- [API Updates Feed](https://www.postman.com/sweapio/sweap-public-apis/overview?tab=updates)\n\n## Versioning\n\nAll API requests should include the `X-API-Version` HTTP header with the current version that the client is using to make the request. The server will also return the version that it is using as the `X-API-Version` header.\n\n**The current API version is 1.5.4**\n\nIf the client does not send an `X-API-Version` header, it is assumed that the latest version is being used.  \nFor future releases, this header will provide backward compatibility for a period of time in case of breaking changes.\n\n## Date Format\n\nAll timestamps are in ISO 8601 format with UTC / Zulu Time Zone (Z): `yyyy-MM-dd'T'HH:mm:ss.SSSZ`, for example `2021-09-27T09:52:02.752Z`.\n\n## Error Handling\n\nIn case of an error, instead of returning the resource, the API will return an error resource instead. Every error response also includes a `requestId` (and the `X-Request-Id` header) so you can share it with Sweap Support while the human-readable message stays generic.\n\n**Example**:\n\n``` json\n{\n  \"code\": 4090,\n  \"error\": \"Stale Resource\",\n  \"message\": \"submitted version 8, but latest version is 9\",\n  \"requestId\": \"c93b0a74-6c5c-4e2e-b3d1-7d8e3d7b01d4\"\n}\n ```\n\nIn this case 4090 doesn't encode more information than plain 409, but in the future there might be a 4091, so this lays the groundwork for it. Please read the next chapter for clarification.\n\n### Extended Error Codes\n\nIn addition to the default HTTP status codes in certain scenarios, the API will return additional error codes that extend the 3 digit HTTP status code with an additional digit to offer more specific details.\n\n| Code   | Error                            | Description                                                                                                                                                                                                      |\n|--------|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `4000` | Missing Property                 | Like HTTP 400, specifically when required property is not set (currently only when `version` not set on a PUT, see section Updating Resources)                                                                   |\n| `4001` | Invalid Property                 | A key in the request JSON is invalid. E.g. reference to a non existing id.                                                                                                                                       |\n| `4002` | Parent Resource Not Existing     | The parent resource doesn't exist. E.g. when a guest's parent event was deleted and `eventId` doesn't exist any longer.                                                                                          |\n| `4003` | Referential Integrity Violation  | The resource cannot be deleted as it is still being required by another resource.                                                                                                                                |\n| `4020` | Insufficient Registration Quota  | You have exceeded your registration quota for your Sweap subscription. You must increase your quota before setting an event to ACTIVE. See here for more information: https://www.sweap.io/en/registration-quota |\n| `4031` | Access Denied Missing Permission | The JWT is missing the required role to access this resource, e.g. events_read.                                                                                                                                  |\n| `4040` | Resource Not Found               | The resource was not found, e.g. a GET with a wrong id or resource has been deleted.                                                                                                                             |\n| `4090` | Stale Resource                   | The server resource already has a higher `version` when trying to update a resource via PUT. This prevents version conflicts, see section Updating Resources.                                                    |\n| `5000` | Unknown                          | Unknown server error which usually should not happen and hints, that something might be broken for the API.                                                                                                      |\n\n## CRUD Requests Overview\n\n### Retrieving Resources\n\nA `GET` request to a resource without an id will return an array of objects.\nThe following example returns all event objects that are assigned to the client making the request. All lists are paginated and return as maximum 1.000 elements:\n``` shell\ncurl --include --request GET \\\n--url \"https://api.sweap.io/core/v1/events\" \\\n--header \"X-API-Version: 1.5.4\"\n ``` \n\nA specific resource is requested by appending an index to the path, as shown by this example:\n``` shell\ncurl --include --request GET \\\n--url \"https://api.sweap.io/core/v1/events/a7feb533-b859-43d9-acfc-49b68de5f896\" \\\n--header \"X-API-Version: 1.5.4\"\n ```\n\nAdditionally, by passing the query parameter `updatedAfter=`, only the resources that were changed after that timestamp will be returned. This allows for incremental updates.\n\n#### Pagination\n\nAll list and paginated endpoints offer and require pagination via `page`, `size`, `sortBy` and `sortOrder` parameters.\n\n- **page** = page number (default value = 0)\n\n- **size** = number of results on a page (default value = 100, min = 1, max = 1000)\n\n- **sortBy** = sorting the list by a resource variable (default value = createdAt)\n\n- **sortOrder** = sorting order either DESC (descending) or ASC (ascending) (default value = DESC)\n\n\nWhen a response is paginated, the response headers will include a `link` header. If all results fit on a single page, the `link` header will be omitted.\n\nThe `link` header contains URLs that you can use to fetch additional pages of results. For example, the previous, next, first, and last page of results.\n\nIf the response is paginated, the `link` header will look something like this:\n\n```\nlink: <https://api.sweap.io/core/v1/events?page=4&size=10>; rel=\"next\", \n      <https://api.sweap.io/core/v1/events?page=2&size=10>; rel=\"prev\", \n      <https://api.sweap.io/core/v1/events?page=0&size=10>; rel=\"first\",\n      <https://api.sweap.io/core/v1/events?page=50&size=10>; rel=\"last\"\n ```\n\nThe `link` header provides the URL for the previous, next, first, and last page of results:\n\n- The URL for the previous page is followed by `rel=\"prev\"`.\n\n- The URL for the next page is followed by `rel=\"next\"`.\n\n- The URL for the last page is followed by `rel=\"last\"`.\n\n- The URL for the first page is followed by `rel=\"first\"`.\n\n\nIn some cases, only a subset of these links are available. For example, the link to the previous page won't be included if you are on the first page of results, and the link to the last page won't be included if it can't be calculated.\n\nYou can use the URLs from the `link` header to request another page of results. For example, to request the last page of results based on the previous example:\n\n``` shell\ncurl --include --request GET \\\n--url \"https://api.sweap.io/core/v1/events?page=50&size=10\" \\\n--header \"X-API-Version: 1.5.4\"\n ```\n\nThe URLs in the `link` header use query parameters to indicate which page of results to return and include the `page` and `size` query parameters.\n\n### Creating Resources\n\nA `POST` request to a resource with an accompanying JSON body will create a new object. The API will return the newly created object with its unique ID.\n\nAdditionally, timestamps like `createdAt` and `updatedAt` timestamps will be managed by the API. All timestamps are in ISO 8601 format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.\n\n### Updating Resources\n\nA `PUT` request to a specific resource with an accompanying JSON body will update the object and automatically increment the `version` field, as well as refresh `updatedAt`.\n\n_IMPORTANT_: the JSON body of the object must contain the **current** `version` tag for the purpose of [Optimistic Locking](https://de.wikipedia.org/wiki/Optimistic_Concurrency). If you pass an outdated `version` tag the API will return a `409` error.\n\n### Deleting Resources\n\nA `DELETE` request to a specific resource will delete an object. If the delete request was successful the API will return with a status code of `200`.\n\n## Common Fields On All Resources\n\nAll resources are transmitted in JSON format. Every resource comes with a set of common fields and resource specific fields.\n\n| Field Name   | Type               | Access     | Description                                                                               |\n|--------------|--------------------|------------|-------------------------------------------------------------------------------------------|\n| `id`         | `String` (UUID)    | read-only  | unique identifier assigned by the API                                                     |\n| `version`    | `Number` (Integer) | read-only  | current version number for _Optimistic Locking_                                           |\n| `updatedAt`  | `String`           | read-only  | ISO 8601 timestamp of last change                                                         |\n| `createdAt`  | `String`           | read-only  | ISO 8601 timestamp of creation                                                            |\n| `externalId` | `String` (max 255) | read-write | used to reference IDs in externally systems. Free to choose and not unique in the system. |\n\n## Authentication\n\nThe API uses OAuth 2.0 with a client credentials flow (as described by [auth0](https://auth0.com/docs/get-started/authentication-and-authorization-flow/client-credentials-flow)).\n\nYou don't need to request scopes. This flow is best suited for machine-to-machine (M2M) applications, \nsuch as CLIs, daemons, or backend services, because the system needs to authenticate \nand authorize the application instead of a user.\n\nThe lifetime of the JWT access token is 60 minutes. After that, \nyou must re-request a new token using the client credentials flow \nwith `client_id` and `client_secret` and `grant_type=client_credentials`. \nThe client credentials flow does not include a refresh token (as required \nby the [specification](https://datatracker.ietf.org/doc/html/rfc6749#section-4.4.3)).\n\nThe JWT defines which resources the application can access. \nYou can find the resource access in the JWT claim `resource_access` in the `core-api` `roles` array. \nEach endpoint usually has an `read`and a `write` role. The `admin` role contains all other roles.\nThese roles are defined in the Sweap application for each API client.\nCurrently, these roles are supported:\n\n- `events_read`\n\n- `events_write`\n\n- `categories_read`\n\n- `guests_read`\n\n- `guests_write`\n\n- `guest_bulk_imports_read`\n\n- `guest_bulk_imports_write`\n\n- `contacts_read`\n\n- `contacts_write`\n\n- `event_statistics_read`\n\n- `checkins_read`\n\n- `checkins_write`\n\n- `visibility_groups_read`\n\n- `event_tags_read`\n\n- `recipients_read`\n\n- `registration_pages_read`\n\n- `deleted_resources_read`\n\n### Restricted Access by License\n\nThe following roles are restricted and are not included in the default API licenses:\n\n- `deleted_resources_read`\n- `registration_pages_read`\n- `checkins_write`\n\n⚠️ Please contact the Sweap Support team at support@sweap.io to request access.\n\n### Example\n\nHere is an example of how to request an access token:\n\n``` shell\ncurl --location 'https://auth.sweap.io/realms/users/protocol/openid-connect/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'client_id=<Ask Sweap to get a value>' \\\n--data-urlencode 'client_secret=<Ask Sweap to get a value>' \\\n--data-urlencode 'grant_type=client_credentials'\n ```\n\n## Additional Resources\n\n\nContact Support:\n Name: support@sweap.io\n Email: support@sweap.io","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"2047","team":2659097,"collectionId":"53646fe7-333c-4bb2-a8c9-dc37939f3949","publishedId":"2sB34imLSH","public":true,"publicUrl":"https://apidoc.sweap.io","privateUrl":"https://go.postman.co/documentation/2047-53646fe7-333c-4bb2-a8c9-dc37939f3949","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"339cc2"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"The Sweap Core API enables secure, machine-to-machine (M2M) integration with Sweap’s event management platform. Automate guest handling, event data sync, check-ins, and more. Built for backend systems using OAuth 2.0 and RESTful endpoints."},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/38fbcc29-2897-4683-a8eb-70ce9a256141/c3dlYXAtbG9nby1zdGFuZGFyZC1vbmRhcmstcmdiLTIwNDhweC5wbmc=","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"339cc2"}},{"name":"light","logo":"https://content.pstmn.io/729a2ae5-1b43-47f8-8de4-b7c2db3a59cf/c3dlYXAtbG9nby1zdGFuZGFyZC1vbmxpZ2h0LXJnYi0yMDQ4cHgucG5n","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"339cc2"}}]}},"version":"8.10.0","publishDate":"2025-07-17T20:47:31.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":"The Sweap Core API enables secure, machine-to-machine (M2M) integration with Sweap’s event management platform. Automate guest handling, event data sync, check-ins, and more. Built for backend systems using OAuth 2.0 and RESTful endpoints."},"logos":{"logoLight":"https://content.pstmn.io/729a2ae5-1b43-47f8-8de4-b7c2db3a59cf/c3dlYXAtbG9nby1zdGFuZGFyZC1vbmxpZ2h0LXJnYi0yMDQ4cHgucG5n","logoDark":"https://content.pstmn.io/38fbcc29-2897-4683-a8eb-70ce9a256141/c3dlYXAtbG9nby1zdGFuZGFyZC1vbmRhcmstcmdiLTIwNDhweC5wbmc="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/063df44487c1d850f2f0bc75245ed8e4548405d8c691f81fa0926cee247316e2","favicon":"https://res.cloudinary.com/postman/image/upload/v1645563505/team/scolqt1kzkur4j2jjbox.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://apidoc.sweap.io/view/metadata/2sB34imLSH"}