# Create a diff
**POST /diffs**
Create a diff between any two given API definitions.
The diff result will be available asynchronously and needs
to be retrieved with the [`GET /diffs/:id` API endpoint](#operation-get-diffs-parameter).
## Servers
- https://bump.sh/api/v1: https://bump.sh/api/v1 ()
## Parameters
## Body parameters
Content-type: application/json
The diff creation request object
- **url** (string(uri))
==**REQUIRED**== if `definition` is not present.
Current definition URL. It should be accessible through
HTTP by Bump.sh servers.
- **previous_url** (string(uri))
==**REQUIRED**== if `definition` is not present.
Previous definition URL. It should be accessible through
HTTP by Bump.sh servers.
- **previous_definition** (string)
==**REQUIRED**== if `url` is not present.
Serialized definition of the previous version. This should
be an OpenAPI 2.x, 3.x or AsyncAPI 2.x file serialized as
a string, in YAML or JSON.
- **previous_references** (array[object])
Import external references used by `previous_definition`. It's usually resources not accessible by Bump.sh servers, like local files or internal URLs.
- **definition** (string)
==**REQUIRED**== if `url` is not present.
Serialized definition of the current version. This should
be an OpenAPI 2.x, 3.x or AsyncAPI 2.x file serialized as
a string, in YAML or JSON.
- **references** (array[object])
Import external references used by `definition`. It's usually resources not accessible by Bump.sh servers, like local files or internal URLs.
- **expires_at** (string(date-time))
Public change expiration date and time. After this date, this documentation change will be destroyed.
## Responses
### 201: Diff successfully created
#### Body Parameters: application/json (object)
- **id** (string)
Unique id of your diff
### 422: Definition is not valid.
#### Body Parameters: application/json (object)
- **message** (string)
Human readable error message.
- **errors** (object)
Hash of invalid attributes with their error messages.
[Powered by Bump.sh](https://bump.sh)