code: def expand(self, url):
          
          url = self.clean_url(url)
          expand_url = f'{self.api_url}v1/expand'
          payload = {
              'domain': getattr(self, 'domain', 'adf.ly'),
              'advert_type': getattr(self, 'type', 'int'),
              'group_id': getattr(self, 'group_id', None),
              'key': self.api_key,
              'user_id': self.user_id,
              'url': url,
          }
          response = self._post(expand_url, data=payload)
          if not response.ok:
              raise BadAPIResponseException(response.content)
  
          try:
              data = response.json()
          except json.decoder.JSONDecodeError:
              raise BadAPIResponseException('API response could not be decoded')
  
          if data.get('errors'):
              errors = ','.join(i['msg'] for i in data['errors'])
              raise ShorteningErrorException(errors)
  
          if not data.get('data'):
              raise BadAPIResponseException(response.content)
  
          return data['data'][0]['url']
docs: Expand implementation for Adf.ly
          Args:
              url: the URL you want to expand
  
          Returns:
              A string containing the expanded URL
  
          Raises:
              BadAPIResponseException: If the data is malformed or we got a bad
              status code on API response
              ShorteningErrorException: If the API Returns an error as response