# Pascal Developer Docs > Make content from your own systems available in Pascal with the Custom Source Upload API. - [Integrate with Pascal](https://developers.teampascal.com/index.md): Make content from your own systems available in Pascal. - [Quickstart](https://developers.teampascal.com/quickstart.md): Create a datasource and get an access token. - [Authentication](https://developers.teampascal.com/authentication.md): Exchange a signed client assertion for a datasource-scoped access token. - [Uploads](https://developers.teampascal.com/uploads.md): Open an upload, send records in batches, close it, and read the result. - [Errors and recovery](https://developers.teampascal.com/errors.md): Interpret request errors and asynchronous upload failures. - [Test the API](https://developers.teampascal.com/test-the-api.md): Use a new `test` datasource to upload sample `purchase_order` JSONs. - [Exchange a token](https://developers.teampascal.com/api-reference/exchange-token.md): Exchange a signed client assertion for a bearer token. - [Open an upload](https://developers.teampascal.com/api-reference/open-upload.md): Open an upload for the token's datasource. - [Stage a batch of records](https://developers.teampascal.com/api-reference/stage-records.md): Stage a batch of JSON records. - [Close an upload](https://developers.teampascal.com/api-reference/close-upload.md): Validate and process the staged upload. - [Get upload status](https://developers.teampascal.com/api-reference/get-upload.md): Read the upload's status and report. - [Get datasource status](https://developers.teampascal.com/api-reference/get-datasource.md): Read the token's datasource status. ## OpenAPI Specs - [openapi](/openapi.json)