How to know if a Pokemon is a Ditto?

Solution 1:

There are, in fact, a couple ways to detect a Ditto:

  • Ring Discrepancies
    Dittos have different thresholds for ring colors, which means that their ring colors might not match the expected CP value. For example, a Ditto hiding as a Rattata may have a CP listed as 27, but it may have a yellow or orange ring. Of course, this isn't foolproof as the CP might very well match. This may very well be an unintended mechanic/bug, as per reports by others.
    Sources: PoGo Gamepress, Reddit Thread, Various online comments/sources, personal experience, community reports.
  • Game Data Mining
    If you're clever with reverse engineering and reading the game data, a hiding Ditto is detectable due to a couple flags sent to the client, so everybody knows what is being dealt with. These flags can either be intercepted using something like Wireshark, or you can (try to) use a mapping/radar solution. Of course, this is dependant on Niantic not changing anything, which we never can predict reliably.

However, if the ring colors match (which seems to be rather common) and you don't want to use Wireshark or other "cheaty" methods, there's no way to legitimately detect a Ditto without catching it. And, you don't need a permit for catch-and-release.

Solution 2:

No. You will not know it is a Ditto until after you catch the Pokemon. A dialog will pop up with "Oh?" and a short cutscene will play showing the Pokemon turn into a Ditto.

See this GamePress article on Ditto mechanics:

There is no way to know whether you have encountered a Ditto until you try catching it. Its target ring colors is faked to match the catch rate of its disguise.

Ditto has a Base Capture Rate (BCR) of 16%, among the lowest in-game for an unevolved Pokemon. In comparison, the common Pokemon it disguises as all have BCR of 40% or 56%. This means Ditto is 3-4 times harder to catch. If you throw an excellent curved Ultra Ball and that Pidgey still breaks out, it might be a Ditto (or knowing your luck, it might not).

Thus, there is no way to tell beforehand, unfortunately. The most telling indicator is that your Pidgey or Rattata is uncannily difficult to catch (but it could also just be a case of bad luck).