Partner API v1 Documentation
Base URL: https://staging-indrive.solartools.uk/api/v1/partner
Authentication
All endpoints require a custom header:
X-API-KEY: {your-api-key}
Unauthorized requests return 401 with message "Unauthorized".
1. Create Folder
POST /folder/create
Creates a new survey folder for a partner. Returns folder information needed for file uploads.
Headers
| Header | Value | Required |
|---|---|---|
| X-API-KEY | Your API key | Yes |
Request Body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
| surveyor_folder | string | Yes | The name of the surveyor folder |
| survey_folder | string | Yes | The name of the survey folder |
Example Request Body
{
"surveyor_folder": "Surveys - Ash Mills",
"survey_folder": "Neville Voss - PO178LP (1234)"
}
Successful Response (200 OK)
{
"success": true,
"folderPath": "https://staging-indrive.solartools.uk/shared?folder=4c165efe-8a51-45e1-929f-159d2e3396e1",
"message": "Folder route returned successfully."
}
Example Validation Errors (422)
{
"errors": {
"survey_folder": ["The survey_folder field is required."]
}
}
2. Store File(s)
POST /files/store
Uploads one or more files to a survey folder. Returns names of successfully uploaded files.
Headers
| Header | Value | Required |
|---|---|---|
| X-API-KEY | Your API key | Yes |
Request Body (multipart/form-data)
| Field | Type | Required | Description |
|---|---|---|---|
| files | file(s) | Yes | One or multiple files (max 10MB each) |
| survey_folder | string | Yes | URL of the folder to store files in (from `createFolder` response) |
Example Postman form-data setup
Key | Type | Value
--------------|------|----------------------------------------
survey_folder | Text | http://localhost:8000/shared?folder=UUID_HERE
files[] | File | (select file from disk)
Successful Response (200 OK)
{
"success": true,
"uploaded_files": [
"file1.pdf",
"image2.jpg"
]
}
Validation Errors (422)
{
"errors": {
"files.0": ["The files.0 field must be a file."],
"survey_folder": ["The survey_folder field is required."]
}
}
Unauthorized Response (401)
{
"message": "Unauthorized"
}