---
# System prepended metadata

title: findfreelancer.ru API

---

# findfreelancer.ru API


- `POST /profile` - [регистрация (создать профиль)](#`POST-/profile`---регистрация)
- `POST /login` - [авторизация (логин)](#`POST-/login`---авторизация)
- `DELETE /logout` - [выйти из профиля](#`DELETE-/logout---выйти-из-профиля`)
- `PUT /profile/id:[0-9]+` - [изменить профиль](#`PUT-/profile/id:[0-9]+`---изменить-профиль)
- `POST /profile/avatar` - [загрузить фотку (аватарку)](#`POST-/profile/avatar`---загрузить-фотку)
- `POST /profile/id[0-9]+/specialize` - [добавить специализацию](#`POST-/profile/id[0-9]+/specialize`---добавить-специализацию)
- `DELETE /profile/id[0-9]+/specialize` - [удалить специализацию](#`DELETE-/profile/id[0-9]+/specialize`---удалить-специализацию)
- `GET /profile/id:[0-9]+` - [получить всю информацию о юзере](#`GET-/profile/id:[0-9]+`---получить-всю-информацию-о-юзере)
- `GET profile/authorized` - [проверить аторизован ли пользователь](#`GET-profile/authorized`---проверить-аторизован-ли-пользователь)
- `POST /order` - [создать заказ](#`POST-/order`---создать-заказ)
- `GET /order/id:[0-9]+` - [получить всю информация о заказе](#`GET-/order/id:[0-9]+`---получить-всю-информация-о-заказе)
- `POST /order/id:[0-9]+/response` - [добавить отклик](#`POST-/order/id:[0-9]+/response`---добавить-отклик)
- `GET /order/id:[0-9]+/response` - [получить все отклики на текущий заказ](#`GET-/order/id:[0-9]+/response`---получить-все-отклики-на-текущий-заказ`)
- `PUT /order/id:[0-9]+/response` - [изменить отклик](#`PUT-/order/id:[0-9]+/response`---изменить-отклик)
- `DELETE /order/id:[0-9]+/response` - [удалить отклик](#`DELETE-/order/id:[0-9]+/response`---удалить-отклик)
- `GET /order` - [получить все актуальные заказы](#`GET-/order`---получить-все-актуальные-заказы)
- `GET /order/profile/id:[0-9]` - [получить все заказы пользователя](#`GET-/order/profile/id:[0-9]`---получить-все-заказы-пользователя)
- `PUT /order/id:[0-9]` - [изменить заказ](#`PUT-/order/id:[0-9]`---изменить-заказ)
- `POST /vacancy` - [создать вакансию](#`POST-/vacancy`---создать-вакансию)
- `GET /vacancy/id:[0-9]+` - [получить всю информацию о вакансии](#`GET-/vacancy/id:[0-9]+`---получить-всю-информацию-о-вакансии)
- `POST /vacancy/id:[0-9]+/response` - [добавить отклик](#`POST-/order/id:[0-9]+/response`---добавить-отклик)
- `GET /vacancy/id:[0-9]+/response` - [получить отклик](#`GET-/order/id:[0-9]+/response`---получить-отклик)



1. ### `POST /profile` - регистрация

    - Тело запроса:
    ```json
    {
        "email": "kek@mem.ru",
        "password": "2283221488", // не менее 6ти символов
        "login": "AleXDarkstalker98",
        "name_surname": "Глад Валакас",
        "about": "Я пожилой шалунишка, я стесняшка, я улыбашка. Я енотик полоскун, полоскаю свой ",
        "specializes": [ "Фронтенд", "Бекенд", "Кашеварение" ] // для исполнителя
    }
    ```
    - Ответы:
        - 201 created
        ```json
        {
            "id": 322,
            "email": "kek@mem.ru",
            "login": "AleXDarkstalker98",
            "name_surname": "Глад Валакас",
            "about": "Я пожилой шалунишка, я стесняшка, я улыбашка. Я енотик полоскун, полоскаю свой ",
            "executor": true/false,
            "specializes": ["Фронтенд", "Бекенд", "Кашеварение"] // для исполнителя
        }
        ```
        - 400 Ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 400 Невалидные данные в запросе
        ```json
        {
            "error": "Invalid data"
        }
        ```
        - 400 Пользователь с таким имейлом уже существует
        ```json
        {
            "error": "Email duplicate"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
2. ### `POST /login` - авторизация
    - Тело запроса:
    ```json
    {
        "email": "kek@mem.ru",
        "password": "2283221488"
    }
    ```
    - Ответы:
        - 201 Created
        ```json
        {
            "id": 1488,
            "email": "kek@mem.ru",
            "login": "AleXDarkstalker98",
            "name_surname": "Глад Валакас",
            "executor": true/false,
            "about": "Я пожилой шалунишка, я стесняшка, я улыбашка. Я енотик полоскун, полоскаю свой "
            "specializes": ["Фронтенд", "Бекенд", "Кашеварение"] // для исполнителя
        }
        ```
        - 400 Ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 401 Пользователь с таким имейлом не найден
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 401 Неверный пароль
        ```json
        {
            "error": "Bad password"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
3. ### `DELETE /logout` - выйти из профиля
    - Ответы:
        - 200 OK
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 404 - профиль не найден
        ```json
        {
            "error": "user not found"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
4. ### `PUT /profile/id:[0-9]+` - изменить профиль
    - Тело запроса:
    ```json
    Все поля опциональны!
    Имейл не меняется!
    Заказчика исполнителем тоже сделать пока нельзя, если будет надо напишите мне
    {
        "old_password": "2283221488", // не менее 6ти символов
        "login": "AleXDarkstalker98",
        "name_surname": "Глад Валакас",
        "about": "Я старая няшка, пожилая я стесняшка. Я енотик полоскун, полоскаю свой ",
        "new-password": "alex1488"
    }
    ```
    - Ответы:
        - 200 OK
        ```json
        {
            "id": 228,
            "email": "kek@mem.ru",
            "login": "AleXDarkstalker98",
            "name_surname": "Глад Валакас",
            "executor": true, // для заказчика поле не вернется
            "specializes": [ "Фронтенд", "Бекенд", "Кашеварение" ], // для исполнителя
            "about": "Я старая няшка, пожилая я стесняшка. Я енотик полоскун, полоскаю свой "
        }
        ```
        - 400 Ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 400 Некорректные данные о пользователе
        ```json
        {
            "error": "Incorrect user data"
        }
        ```
         - 400 - некорректный айди в урле
        ```json
        {
            "error": "Bad id"
        }
        ```
        - 400 - айди в урле и в куках не совпали
        ```json
        {
            "error": "No right to modify"
        }
        ```
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 404 - профиль не найден
        ```json
        {
            "error": "user not found"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
        
5. ### `POST /profile/id[0-9]+/specialize` - добавить специализацию

 - Тело запроса:
    ```json
    {
        "specialize": "Бекенд"
    }
    ```
    - Ответы:
        - 201 Created
       ```json
       {
            "id": 322,
            "email": "kek@mem.ru",
            "login": "AleXDarkstalker98",
            "name_surname": "Глад Валакас",
            "executor": true/false,
            "about": "Я старая няшка, пожилая я стесняшка. Я енотик полоскун, полоскаю свой ",
            "specializes": ["Бекенд"],
            "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
        }
       ```
       - 400 - нет тела запроса
       ```json
       {
           "error": "No body"
       }
       ```
       - 400 - ошибка в json
       ```json
       {
           "error": "Bad json"
       }
       ```
       - 400 - неправильное название специализации
       ```json
       {
           "error": "Bad specialize name"
       }
       ```
       - 401 - неавторизованный пользователь
       ```json
       {
           "error": "Unauthorized"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
6. ### `DELETE /profile/id[0-9]+/specialize` - удалить специализацию
- Тело запроса:
    ```json
    {
        "specialize": "Бекенд"
    }
    ```
    - Ответы:
        - 200 Ok
        ```json
        {}
        ```
        - 400 - нет тела запроса
       ```json
       {
           "error": "No body"
       }
       ```
       - 400 - ошибка в json
       ```json
       {
           "error": "Bad json"
       }
       ```
       - 400 - неправильное название специализации
       ```json
       {
           "error": "Bad specialize name"
       }
       ```
       - 401 - неавторизованный пользователь
       ```json
       {
           "error": "Unauthorized"
       }
       ```
       - 403 - видимо что-то с куками
       ```json
       {
           "error": "Bad id"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
8. ### `POST /profile/avatar` - загрузить фотку
    - Тело запроса:
    ```json
    {
        "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
    }
    ```
    - Ответы:
        - 201 Created
       ```json
       {
            "id": 322,
            "email": "kek@mem.ru",
            "login": "AleXDarkstalker98",
            "name_surname": "Глад Валакас",
            "executor": true/false,
            "about": "Я старая няшка, пожилая я стесняшка. Я енотик полоскун, полоскаю свой ",
            "specializes": ["Бекенд разработчик"], //только для исполнителей
            "img":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
        }
       ```
       - 400 - нет тела запроса
       ```json
       {
           "error": "No body"
       }
       ```
       - 400 - ошибка в json
       ```json
       {
           "error": "Bad json"
       }
       ```
       - 401 - неавторизованный пользователь
       ```json
       {
           "error": "Unauthorized"
       }
       ```
       - 403 - видимо что-то с куками
       ```json
       {
           "error": "Bad id"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
6. ### `GET /profile/id:[0-9]+` - получить всю информацию о юзере
    - Ответы:
        - 200 ОК
        ```json
        {
            "id": 228,
            "login": "AleXDarkstalker98",
            "name_surname": "Глад Валакас",
            "executor": true, // для заказчика поле не вернется
            "specializes": [ // только для исполнителей
                "Фронтенд",
                "Бекенд"
            ]
            "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
            "about": "Я старая няшка, пожилая я стесняшка. Я енотик полоскун, полоскаю свой ",
        }
        ```
         - 400 - некорректный айди в урле
        ```json
        {
            "error": "Bad id"
        }
        ```
       - 404 - пользователя не существует
       ``` json
       {
           "error": "user not found"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
7. ### `GET profile/authorized` - проверить аторизован ли пользователь
    - Ответы:
        - 200 ОК
        ```json
        {
            "id": 228,
            "executor": true/false
        }
        ```
        - 401 - неавторизованный пользователь
       ```json
       {
           "error": "Unauthorized"
       }
       ```
       - 403 - видимо что-то с куками
       ```json
       {
           "error": "Bad id"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
8. ### `POST /order` - создать заказ
     - Тело запроса:
     ```json 
     {
         "order_name": "Сверстать профиль",
         "category": "Верстка",
         "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно",
         "budget": 1488,
         "deadline": 1617004533, //unix-time
     }
     ```
     - Ответы:
         - 201 Created
         ```json
         {
             "id": 228, //id заказа
             "order_name": "сверстать профиль",
             "category": "Верстка"
             "customer_id": 322, //id создателя
             "budget": 1488,
             "deadline": 1617004533, //unix-time
             "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно",
        }
         ````
         - 400 Ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 400 Невалидные данные в запросе
        ```json
        {
            "error": "Invalid data"
        }
        ```
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 403 - видимо что-то с куками
        ```json
        {
            "error": "Bad id"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
9. ### `GET /order/id:[0-9]+` - получить всю информация о заказе
     - Ответы:
         - 200 OK
         ```json
         {
             "id": 228, //id заказа
             "category": "Верстка",
             "order_name": "сверстать профиль",
             "customer_id": 322, //id создателя
             "budget": 1488,
             "deadline": 1617004533, //unix-time
             "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно",
             "login": "AlexDarkStalker",
             "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
        }
        ```
       - 400 - некорретный айди в урле 
       ```json
       {
           "error": "Bad id"
       }
        ```
       - 404 - заказа не существует
       ``` json
       {
           "error": "order not found"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
10. ### `POST /order/id:[0-9]+/response` - добавить отклик
    - Тело запроса:
     ```json 
     {
         "user_id": 322,
         "rate": 1488,
         "time": 1617952689, // время отклика
     }
     ```
     - Ответы:
         - 201 Created
         ```json 
         {
             "id": 1,
             "order_id": 228,
             "user_id": 322,
             "rate": 1488,
             "user_login": "AlexDarkStalker98",
             "user_img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/",
             "time": 1617952689, // время отклика
         }
         ```
         - 400 - нет тела запроса
        ```json
        {
            "error": "No body"
        }
        ```
        - 400 - ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 404 - заказ не найден
        ```json
        {
            "error": "Order not found"
        }
        ```
         - 500 - ошибка на стороне сервера
        ```json
        { 
            "error": "Internal server error"
        }
        ```
11. ### `GET /order/id:[0-9]+/response` - получить все отклики на текущий заказ
    - Ответы:
         - 200 OK
         ```json
         {
             [
                 {
                     "id": 1,
                     "order_id": 228,
                     "user_id": 322,
                     "rate": 1488,
                     "user_login": "AlexDarkStalker98",
                     "user_img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/",
                     "time": 1617952689 // время отклика
                 },
                 {
                     "id": 1,
                     "order_id": 228,
                     "user_id": 322,
                     "rate": 1488,
                     "user_login": "AlexDarkStalker98",
                     "user_img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
                     "time": 1617952689 // время отклика
                 },
             
             ]
         }
         ```
         - 404 - заказ не найден
         ```json
         {
             "error": "Order not found"
         }
         ```
        
         - 500 - ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
12. ### `PUT /order/id:[0-9]+/response` - изменить отклик
    - Тело запроса:
     ```json 
     {
         "user_id": 322,
         "rate": 1488,
         "time": 1617952689, // время отклика
     }
     ```
     - Ответы:
         - 200 OK
         ```json 
         {
             "id": 1,
             "order_id": 228,
             "user_id": 322,
             "rate": 1488,
             "user_login": "AlexDarkStalker98",
             "user_img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/",
             "time": 1617952689, // время отклика
         }
         ```
         - 400 - нет тела запроса
        ```json
        {
            "error": "No body"
        }
        ```
        - 400 - ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 404 - заказ не найден
        ```json
        {
            "error": "Order not found"
        }
        ```
         - 500 - ошибка на стороне сервера
        ```json
        { 
            "error": "Internal server error"
        }
        ```

13. ### `DELETE /order/id:[0-9]+/response` - удалить отклик
    - Ответы:
        - 200 OK
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 404 - отклик не найден
        ```json
        {
            "error": "response not found"
        }
        ```
        - 404 - заказ не найден
        ```json
        {
            "error": "order not found"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
    
12. ### `GET /order` - получить все актуальные заказы
    - Ответы:
         - 200 OK
         ```json
         {
             [   
                     {
                         "id": 228, //id заказа
                         "category": "Верстка",
                         "order_name": "сверстать профиль",
                         "customer_id": 322, //id создателя
                         "budget": 1488,
                         "deadline": 1617004533, //unix-time
                         "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно",
                         "login": "AlexDarkStalker",
                         "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
                    }
                    {
                         "id": 322, //id заказа
                         "category": "Программирование",
                         "order_name": "сделать наконец нормальный апи",
                         "customer_id": 228, //id создателя
                         "budget": 3228,
                         "deadline": 1617004533, //unix-time
                         "description": "Сделать нормальное апи для сайта поиска фрилансеров",
                         "login": "AlexDarkStalker",
                         "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
                    },
             ]
        }
        ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```
13. ### `GET /order/profile/id:[0-9]` - получить все заказы пользователя
     - Ответы:
         - 200 OK
         ```json
         {
             [   
                     {
                         "id": 228, //id заказа
                         "category": "Верстка",
                         "order_name": "сверстать профиль",
                         "customer_id": 322, //id создателя
                         "budget": 1488,
                         "deadline": 1617004533, //unix-time
                         "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно",
                         "login": "AlexDarkStalker",
                         "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
                    }
                    {
                         "id": 322, //id заказа
                         "category": "Программирование",
                         "order_name": "сделать наконец нормальный апи",
                         "customer_id": 228, //id создателя
                         "budget": 3228,
                         "deadline": 1617004533, //unix-time
                         "description": "Сделать нормальное апи для сайта поиска фрилансеров",
                         "login": "AlexDarkStalker",
                         "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
                    },
             ]
        }
         ```
         - 400 - плохой айди в урле
         ```json
         {
             "error": "Bad id"
         }
         ```
         - 404 - пользователь не найден не найден
         ```json
         {
             "error": "User not found"
         }
         ```
        
         - 500 - ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
    
11. ### `PUT /order/id:[0-9]` - изменить заказ
    - Тело запроса:
     ```json 
     Все поля опциональны!
     {
         "id": 228,
         "category": "Верстка",
         "order_name": "Сверстать профиль",
         "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно",
         "budget": 1488,
         "deadline": 1617004533, //unix-time
     }
     ```
     - Ответы:
         - 200 OK

         ```json
         {
             "id": 228, //id заказа
             "category": "Верстка",
             "order_name": "сверстать профиль",
             "customer_id": 322, //id создателя
             "budget": 1488,
             "deadline": 1617004533, //unix-time
             "description": "Нужен профиль, чтобы в нем была вся необходимая информация, ничего не уезжало, и все было красиво и аккуратно"
        }
        ```

        - 400 Ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 400 Некорректные данные о заказе
        ```json
        {
            "error": "Incorrect order data"
        }
        ```
        - 400 Недостаточно прав для изменения
        ```json
        {
            "error": "Operation not permitted"
        }
        ```
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 404 - заказ не найден
        ```json
        {
            "error": "order not found"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
12. ### `POST /vacancy` - создать вакансию
    - Тело запроса:
     ```json 
     {
         "category": "Фронтенд",
         "vacancy_name": "Junior фронтенд разработчик",
         "description": "В супер компанию требуется джун фронтенд разработчик",
         "salary": 228322,
     }
     ```
     - Ответы:
         - 201 Created
         ```json
         {
             "id": 228, 
             "category": "Фронтенд",
             "vacancy_name": "Junior фронтенд разработчик",
             "description": "В супер компанию требуется джун фронтенд разработчик",
             "salary": 228322,
        }
        ```
         - 400 Ошибка в json
        ```json
        {
            "error": "Bad json"
        }
        ```
        - 400 Невалидные данные в запросе
        ```json
        {
            "error": "Invalid data"
        }
        ```
        - 401 - неавторизованный пользователь
        ```json
        {
            "error": "Unauthorized"
        }
        ```
        - 403 - видимо что-то с куками
        ```json
        {
            "error": "Bad id"
        }
        ```
        - 500 Ошибка на стороне сервера
        ```json
        {
            "error": "Internal server error"
        }
        ```
13. ### `GET /vacancy/id:[0-9]+` - получить всю информацию о вакансии
    - Ответы:
         - 200 OK
         ```json
         {
             "id": 228, 
             "category": "Фронтенд",
             "vacancy_name": "Junior фронтенд разработчик",
             "description": "В супер компанию требуется джун фронтенд разработчик",
             "salary": 228322,
             "login": "AlexDarkStalker",
             "img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/"
        }
        ```
        - 404 - вакансии не существует
       ``` json
       {
           "error": "vacancy not found"
       }
       ```
       - 500 - ошибка на стороне сервера
       ```json
       {
           "error": "Internal server error"
       }
       ```